Autor | Zpráva | ||
---|---|---|---|
pito Profil |
#1 · Zasláno: 14. 6. 2012, 20:58:40
Zdravím,
Mám formulář přes který jde odesílat soubor, jenže mi to nějak nefunguje.Díval jsem se kde je chyba,ale nemůžu na to přijít. Do databáze mi to pošle jen jméno,ale název toho souboru už ne a na server se mi soubor už vůbec neodešle. Jinak mi to píše chybu: There was an error uploading the file, please try again!ok chyba bude zřejmě někde tady: <?php include('config.php'); $target_path = "upload/"; $target_path = $target_path . basename( $_FILES['file_up[]']['name']); if(move_uploaded_file($_FILES['file_up[]']['tmp_name'], $target_path)) { echo "The file ". basename( $_FILES['file_up[]']['name']). " has been uploaded"; } else{ echo "There was an error uploading the file, please try again!"; } $nazev = basename( $_FILES['file_up[]']['name']) ; $jmeno = $_POST['jmeno']; if($jmeno!="" ){ mysql_query("INSERT INTO vasefoto (jmeno, nazev) VALUES ('$jmeno','$nazev')"); echo "ok"; # header('Location: ok.php'); die; } else { echo "bad"; # header('Location: bad.php'); } ?> |
||
Alphard Profil |
'file_up[]' vypadá dost divně.
„basename( $_FILES['file_up[]']['name'])“ Co si od toho slibujete? |
||
pito Profil |
#3 · Zasláno: 14. 6. 2012, 21:39:58 · Upravil/a: pito
upravil jsem to na
'file_up' jenže píše to další chyby
Warning: basename() expects parameter 1 to be string, array given in /data/web/virtuals/10955/virtual/www/fotogalerie/upfoto.php on line 5 Warning: move_uploaded_file() expects parameter 1 to be string, array given in /data/web/virtuals/10955/virtual/www/fotogalerie/upfoto.php on line 8 There was an error uploading the file, please try again! Warning: basename() expects parameter 1 to be string, array given in /data/web/virtuals/10955/virtual/www/fotogalerie/upfoto.php on line 15 ok myslíte, že to dělá to basename? |
||
Alphard Profil |
Já především nechápu, proč tam vůbec basename je.
$_FILES['file_up[]']['name'] obsahuje původní název souboru, jak vám má basename pomoct?
$target_path = "upload/"; $target_path .= $_FILES['file_up']['name']; // nechat diakritiku ale není dobrý nápad if(move_uploaded_file($_FILES['file_up']['tmp_name'], $target_path)) { echo "The file $_FILES[file_up][name] has been uploaded"; } else{ echo "There was an error uploading the file, please try again!"; } |
||
Keeehi Profil |
#5 · Zasláno: 14. 6. 2012, 21:54:19
Alphard:
Dle chyb bych to viděl spíše na něco takového: $target_path = "upload/"; for( $i=0 ; $i<count($_FILES['file_up']['tmp_name']) ; $i++ ) { if(move_uploaded_file($_FILES['file_up']['tmp_name'][$i], $target_path.$_FILES['file_up']['name'][$i])) { echo "The file $_FILES[file_up][name][$i] has been uploaded"; } else{ echo "There was an error uploading the file, please try again!"; } } |
||
pito Profil |
Tak nakonec mi doporučili lepší upload od php.vrana.cz ktery je zde PHP upload obrázku na server a uložení cesty do databáze
|
||
pito Profil |
#7 · Zasláno: 15. 6. 2012, 16:26:22
Použil jsem tedy to od toho vrany.
Ale nějak mi to nechce zaznamenat jméno obrázku. Ve formuláři mám změnu.Přidal jsem si tam onclick který po kliknutí mi přidává řádek Obrázek: <input type=file name=image[] accept=image>
<form name="vlozit" action="<?php echo $_SERVER["PHP_SELF"];?>" method="post" enctype="multipart/form-data"> <table id="tabulka" border="0"> Jméno: <input type="text" name="jmeno" class="form"> <font size="1"><i>(Jméno bude zveřejněno v galerii)</i></font><br> Obrázek: <input type="file" name="image[]" accept="image"> </table> <tr> <td><input type="submit" name="ok" value="Uložit"></td> </tr> </table> </form> <br> <a href="#" onclick="return novy_radek();">Přidej řádek</a> Jenomže když to chci odeslat tak mi to nezjistí jméno obrázku.Myslím si že tam vadí právě ty závorky u name. name="image[]"
V JS to mám takhle: <script type="text/javascript"> function novy_radek(){ var radku = document.getElementById('tabulka').rows.length; var radek=document.getElementById('tabulka').insertRow(radku); var bunka=radek.insertCell(0); bunka.innerHTML="Obrázek: <input type=file name=image[] accept=image>"; return false; } </script> |
||
Časová prodleva: 12 let
|
0