Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 12 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 11.01.09
Prihlásený: 17.07.22
Príspevky: 371
Témy: 181
Bydlisko: BB
Príspevok NapísalOffline : 17.05.2009 9:57

Už mám bola to funkcia
Kód:
empty($file); //zmaz


//nefunguje aj tak subory sa uploadnu :(



Viem že je tu uz podobna tema ale ja potrebujem cez fclose alebo unlink ...

takze mam script

Kód:

<?php


//uloz
$path= "upload/".$_FILES['ufile']['name'];
$file = "upload/".$_FILES['ufile']['name'];
if($ufile !=none)
{
if(move_uploaded_file($_FILES['ufile']['tmp_name'], $path))
{
fclose($file); //zmaz
echo ">Successful";

}
else
{
echo "Welcome";

}
}

?>


No problem je v tom ze ja to chem uploadnut ziskam udaje o uploadnutom subore z temp a zamzem ho nasledne ale vypisuje error:

Warning: fclose(): supplied argument is not a valid stream resource in /home/www/test/index.php on line 11

riadok 11 je
Kód:
fclose($file); //zmaz



---------------------


Alebo nejako do toho dostat toto... Ked sa upload napriklad obrazok.png a uploadnes iny png obrazok nahradi sa za ten predosli a premenuje sa na obrazok2.png ... Tu je kod:

Kód:
<?php
/***
    this is a simple and complete function and
    the easyest way i have found to allow you
    to add an image to a form that the user can
    verify before submiting

    if the user do not want this image and change
    his mind he can reupload a new image and we
    will delete the last

    i have added the debug if !move_uploaded_file
    so you can verify the result with your
    directory and you can use this function to
    destroy the last upload without uploading
    again if you want too, just add a value...
***/

function upload_back() { global $globals;

/***
    1rst set the images dir and declare a files
    array we will have to loop the images
    directory to write a new name for our picture
***/

  $uploaddir = 'images_dir/'; $dir = opendir($uploaddir);
  $files = array();

/***
    if we are on a form who allow to reedit the
    posted vars we can save the image previously
    uploaded if the previous upload was successfull.
    so declare that value into a global var, we
    will rewrite that value in a hidden input later
    to post it again if we do not need to rewrite
    the image after the new upload and just... save
    the value...
***/

  if(!empty($_POST['attachement_loos'])) { $globals['attachement'] = $_POST['attachement_loos']; }

/***
    now verify if the file exists, just verify
    if the 1rst array is not empty. else you
    can do what you want, that form allows to
    use a multipart form, for exemple for a
    topic on a forum, and then to post an
    attachement with all our other values
***/

  if(isset($_FILES['attachement']) && !empty($_FILES['attachement']['name'])) {

/***
    now verify the mime, i did not find
    something more easy than verify the
    'image/' ty^pe. if wrong tell it!
***/

    if(!eregi('image/', $_FILES['attachement']['type'])) {

      echo 'The uploaded file is not an image please upload a valide file!';

    } else {

/***
    else we must loop our upload folder to find
    the last entry the count will tell us and will
    be used to declare the new name of the new
    image. we do not want to rewrite a previously
    uploaded image
***/

        while($file = readdir($dir)) { array_push($files,"$file"); echo $file; } closedir($dir);

/***
    now just rewrite the name of our uploaded file
    with the count and the extension, strrchr will
    return us the needle for the extension
***/

        $_FILES['attachement']['name'] = ceil(count($files)+'1').''.strrchr($_FILES['attachement']['name'], '.');
        $uploadfile = $uploaddir . basename($_FILES['attachement']['name']);

/***
    do same for the last uploaded file, just build
    it if we have a previously uploaded file
***/

        $previousToDestroy = empty($globals['attachement']) && !empty($_FILES['attachement']['name']) ? '' : $uploaddir . $files[ceil(count($files)-'1')];

// now verify if file was successfully uploaded

      if(!move_uploaded_file($_FILES['attachement']['tmp_name'], $uploadfile)) {

echo '<pre>
Your file was not uploaded please try again
here are your debug informations:
'.print_r($_FILES) .'
</pre>';

      } else {

          echo 'image succesfully uploaded!';

      }

/***
    and reset the globals vars if we maybe want to
    reedit the form: first the new image, second
    delete the previous....
***/

        $globals['attachement'] = $_FILES['attachement']['name'];
        if(!empty($previousToDestroy)) { unlink($previousToDestroy); }

    }

  }
}

upload_back();

/***
    now the form if you need it (with the global...):

    just add the hidden input when you write your
    preview script and... in the original form but!
    if you have send a value to advert your script
    than we are remaking the form. for exemple with a
    hidden input with "reedit" as value  or with a
    $_GET method who can verify that condition
***/

echo '<form action="" method="post" enctype="multipart/form-data">

  <input type="file" name="attachement" name="attachement"></input>
  <input type="hidden" name="attachement_loos" name="attachement_loos" value="', $globals['attachement'] ,'"></input>

  <input type="submit" value="submit"></input>

</form>';
?>


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 26.02.08
Prihlásený: 24.05.13
Príspevky: 372
Témy: 66
Bydlisko: Nové Zámky
Príspevok NapísalOffline : 17.05.2009 10:54

ále ved na zmazanie mas funkciu unlink


Offline

Skúsený užívateľ
Skúsený užívateľ
Zmazanie súboru ...

Registrovaný: 07.03.06
Prihlásený: 23.01.11
Príspevky: 404
Témy: 2
Bydlisko: Prešov / Pr...
Príspevok NapísalOffline : 17.05.2009 11:46

Odkedy fclose, alebo empty slúži na mazanie súboru? Máš v tom riadny chaos. Najprv si prečítaj načo jednotlivé funkcie slúžia:

Kód:
<?php
  //uloz
  $path= "upload/".$_FILES['ufile']['name'];
  $file = "upload/".$_FILES['ufile']['name'];
 
  if($ufile !=none) {
    if(move_uploaded_file($_FILES['ufile']['tmp_name'], $path)) {
      fclose($file); //zmaz
      echo ">Successful";
    }
    else {
      echo "Welcome";
    }
  }

?>
WTF? načo tam máš fclose, keď si predtým neotvoril žiaden súbor? $file tam vystupuje len ako premenná, nie je to žiaden otvorený súbor... Je to jednoducho úplne nezmyslený zápis, preto ti to vyhadzuje chybu - nemôžeš uzavrieť prácu so súborom, keď si žiaden súbor na prácu neotvoril...


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 11.01.09
Prihlásený: 17.07.22
Príspevky: 371
Témy: 181
Bydlisko: BB
Príspevok Napísal autor témyOffline : 17.05.2009 16:11

tak potom ako zmazem ten subor ??


Offline

Skúsený užívateľ
Skúsený užívateľ
Zmazanie súboru ...

Registrovaný: 07.03.06
Prihlásený: 23.01.11
Príspevky: 404
Témy: 2
Bydlisko: Prešov / Pr...
Príspevok NapísalOffline : 17.05.2009 16:54

Tak že otvoríš oči a prečítaš si odkazované funkcie čo som ti poslal, najmä funkciu unlink.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 11.01.09
Prihlásený: 17.07.22
Príspevky: 371
Témy: 181
Bydlisko: BB
Príspevok Napísal autor témyOffline : 17.05.2009 17:10

Čítam čítam a nič ... unlink nefunguje ... pretoze ja potrebujem zmazat subor po uploadnuti ... lenže v tom je ten problém že ak mám aj kód:
Kód:
<?php
  //uloz
  $path= "upload/".$_FILES['ufile']['name'];
  $file = "upload/".$_FILES['ufile']['name'];
 
  if($ufile !=none) {
    if(move_uploaded_file($_FILES['ufile']['tmp_name'], $path)) {
      unlink($file); //zmaz
      echo ">Successful";
    }
    else {
      echo "Welcome";
    }
  }

?>


vypisuje to furt error ?

manual k unlink :



A akoze co mam otvorit cez fopen ked este len zacinam upload suboru lol ?
priklad -
Kód:
<?php
$fh = fopen('test.html', 'a');
fwrite($fh, '<h1>Hello world!</h1>');
fclose($fh);

mkdir('testdir', 0777);

unlink('test.html');
unlink('testdir');
?>


Offline

Čestný člen
Čestný člen
Zmazanie súboru ...

Registrovaný: 11.08.07
Príspevky: 4088
Témy: 34
Bydlisko: Brno
Príspevok NapísalOffline : 17.05.2009 17:12

Ty v tom mas riadny gulas. $path a $file - naco do 2 premennych vkladas to iste? if($ufile !=none) - kde mas premennu $ufile? Kde mas konstantu none? Naco chces subor uploadnut a hned potom zmazat? A vobec, aky error ti vypisuje? Mame si to vyvestit?


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 11.01.09
Prihlásený: 17.07.22
Príspevky: 371
Témy: 181
Bydlisko: BB
Príspevok Napísal autor témyOffline : 17.05.2009 17:21

Ďuri píše:
Ty v tom mas riadny gulas. $path a $file - naco do 2 premennych vkladas to iste? if($ufile !=none) - kde mas premennu $ufile? Kde mas konstantu none? Naco chces subor uploadnut a hned potom zmazat? A vobec, aky error ti vypisuje? Mame si to vyvestit?



Proste potrebujem len uploadnut subor vytiahnut z neho informacie ako je velkost atd. a nakoniec zmazat ...


ok zredukove ;)

pridal som
Kód:
     if(is_file("$file")) {
unlink("$file");
}

Kód:
  //uloz
  $path= "upload/".$_FILES['ufile']['name'];
  $file = "upload/".$_FILES['ufile']['name'];
 

    if(move_uploaded_file($_FILES['ufile']['tmp_name'], $path)) {

echo "Successful";
     if(is_file("$file")) {
unlink("$file");
}

}
else
{
echo "Welcome";
}


Error:
Unable to access zlozka/subor.pripona


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 14.04.09
Prihlásený: 18.01.22
Príspevky: 1188
Témy: 198
Príspevok NapísalOffline : 17.05.2009 18:28

nezabudni na to co ja, suboru a taktisto v zlozke ktorej to je (kazdej zlozke ak ich je viac) pridaj vsetky prava


Offline

Čestný člen
Čestný člen
Zmazanie súboru ...

Registrovaný: 11.08.07
Príspevky: 4088
Témy: 34
Bydlisko: Brno
Príspevok NapísalOffline : 17.05.2009 19:36

Za prve - nezvykaj si pisat "$file". Pokial sa jedna ciste o nazov premennej, nedavaj tento nazov do uvodzoviek. Staci $file.
Pokial potrebujes iba velkost, najdes to priamo v $_FILES. Cize nie je ziadna potreba pouzivat move_uploaded_file a potom unlink.
Nastav aj ten CHMOD 0777, ako pisal 1daemon1, pomocou fcie chmod().


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 11.01.09
Prihlásený: 17.07.22
Príspevky: 371
Témy: 181
Bydlisko: BB
Príspevok Napísal autor témyOffline : 05.06.2009 14:09

$_FILES ? takze ako by to malo byt ?


Offline

Užívateľ
Užívateľ
Zmazanie súboru ...

Registrovaný: 26.12.06
Prihlásený: 16.11.19
Príspevky: 3971
Témy: 181
Bydlisko: Nitra / Bra...
Príspevok NapísalOffline : 05.06.2009 14:56

http://sk.php.net/manual/en/reserved.va ... .files.php - pozri komentare

tak ako obsahuje prvok pola s indexom name, tmp_name tak isto obsahuje aj prvok nazvany size, kde mas ulozenu velkost v bytoch







_________________
Sorry za prelkepy
Odpovedať na tému [ Príspevkov: 12 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. zmazanie suboru

v PHP, ASP

10

706

16.05.2009 20:54

1daemon1 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. zmazanie toho súboru ktorý určuje bootovanie

v Operačné systémy Microsoft

2

314

16.11.2009 21:58

Dany Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Zmazanie

v Databázy

8

708

01.12.2009 16:51

SiAdAk Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Zmazanie partície

v Operačné systémy Microsoft

12

500

06.09.2015 0:33

Smith Wesson Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Zmazanie medzery

v HTML, XHTML, XML, CSS

1

522

05.03.2009 8:15

djsulo Zobrazenie posledných príspevkov

Táto téma je zamknutá, nemôžete posielať nové príspevky alebo odpovedať na staršie. zmazanie pripon

v HTML, XHTML, XML, CSS

1

381

20.06.2010 22:27

shaggy Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Zmazanie zaznamu

v Delphi, Visual Basic

1

571

03.12.2009 19:01

Fico Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Zmazanie suborov

v Operačné systémy Microsoft

12

757

13.06.2008 21:36

M@tt21 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Zmazanie témy

v Správy pre vedenie fóra

2

1302

28.08.2008 22:06

Leachim Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Zmazanie príspevku

v Správy pre vedenie fóra

4

948

23.03.2011 0:48

Kozel Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. zmazanie kodu

v JavaScript, VBScript, Ajax

4

382

14.11.2011 17:24

Bajzik Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Zmazanie témy.

v Správy pre vedenie fóra

5

911

31.01.2011 18:33

shaggy Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Zmazanie temy

v Správy pre vedenie fóra

9

1007

15.06.2011 23:35

Hatamrc Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. zmazanie disku

v Pevné disky a radiče

4

450

09.03.2012 16:30

Semp Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Zmazanie [quote]

v PHP, ASP

4

481

13.07.2011 8:42

Blackshadow Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Definitívne zmazanie súborov

v Ostatné programy

5

934

19.05.2011 0:34

shiro Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra