Autor | Zpráva | ||
---|---|---|---|
msigmund Profil |
Dobrý den,
nedávno jsem zde řešil upload 3 obrázků, to se vyřešilo a malinko jsem to poupravil. Problém nastane když nevložím 3, ale třeba jen jeden nebo dva. Do db se nahraje jen datum a vyhodí to error chmodu. Potřebuji aby se nenáhrálo nic pokud tam není nic. Neumím si poradit s podmínkou, proto prosím o pomoc zde odborníky. Ve formuláři mám 3x imput name obr1, obr2, obr3. Udělal jsem to tak aby se k obrázku přidal datum. foreach($_FILES as $File){ $file = basename($File['name']); $parse = explode(".", $file); $suffix = end($parse); array_pop($parse); $filename = implode(".", $parse); if ($File['error']===UPLOAD_ERR_OK){ if(move_uploaded_file($File['tmp_name'], "../pic/" . $filename . "-" . time() . "." . $suffix) == FALSE){ print'Obrazek '.$File['name'].' se neuložil?<br>'; }else{ $cil = "../pic/" . $filename . "-" . time() . "." . $suffix; chmod ($cil, 0777); print'Obrazek '.$File['name'].' se úspěšně nahrál.<br>'; } }else{ switch ($File['error']){ case UPLOAD_ERR_INI_SIZE: print'Nahraný soubor přesáhne upload_max_filesize "php.ini" .<br>'; break; case UPLOAD_ERR_PARTIAL: print'Nahraný soubor byl nahrán jen částečně.<br>'; break; case UPLOAD_ERR_NO_FILE: print'Žádný soubor se nanahrál.<br>'; break; case UPLOAD_ERR_CANT_WRITE: print'Nepodařilo se zapsat soubor na disk.<br>'; break; default: print'Upload neznámá chyba.<br>'; break; } } } $taim = time(); $file1 = basename($_FILES['obr1']['name']); $parse1 = explode(".", $file1); $suffix1 = end($parse1); array_pop($parse1); $filename1 = implode(".", $parse1); $a1 = "$filename1-$taim.$suffix1"; Do DB ukládám $a1, $a2, $a3 Děkuji všem za pomoc . Moderátor Majkl578: Dovolil jsem si v názvu tématu opravit do očí bijící pravopisnou chybu. Původní titulek: "Nezávislí upload obrázků.".
|
||
AM_ Profil |
#2 · Zasláno: 26. 1. 2010, 12:34:43
http://cz.php.net/is-uploaded-file
tohle by ti mělo stačit. |
||
msigmund Profil |
#3 · Zasláno: 26. 1. 2010, 12:46:33
AM děkuji ti, o tom vím, ale neumím tak dobře anglicky a tak jsem to nepochopil.
|
||
AM_ Profil |
#4 · Zasláno: 26. 1. 2010, 13:23:10
Ani anglicky umět nemusíš, stačí se podívat na příklad:
"if (is_uploaded_file($_FILES['userfile']['tmp_name']))" což v tvém případě, kdy $_FILES procházíš foreach, se bude zapisovat: if (is_uploaded_file($File['tmp_name'])) Tato podmínka ověří, zda byl daný soubor opravdu uploadován (tedy zda uživatel vůbec nějaký soubor vybral a zároveň se úspěšně přenesl). |
||
msigmund Profil |
#5 · Zasláno: 26. 1. 2010, 14:16:57
Děkuji vyřešeno.
$file1 = basename($_FILES['obr1']['name']); if ($file1!==""){ $parse1 = explode(".", $file1); $suffix1 = end($parse1); array_pop($parse1); $filename1 = implode(".", $parse1); $a1 = "$filename1-$taim.$suffix1"; } |
||
Časová prodleva: 14 let
|
0