problem s uploadem
20 příspěvků
Archiv diskusního fóra
Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.
-
Zdravim! Mam problem s uploademsouboru...Jednou mi to jede jak ma a pak treba 30 napise chybu: "Warning: move_uploaded_file(): Unable to access /img/238/0.jpeg in /3w/wz.cz/a/autoin/pages/upload.php on line 50". Uz se s tim stvu asi 3 dny a nechapu proc to nejde, tak kdyby mi pls nekdo byl schopen poradit, byl bych mu moc vdecny. kod stranky vypada takto: <?php $cisloauta = explode("?" , $_GET['id']);//z adresy je poslano c. if($cisloauta[1] != null){ $pocet_foto = $cisloauta[2]; } $cesta = "/img/$cislo_auta"; function mkPath($cesta){ if(!is_dir($cesta)){ mkdir ("$cesta", 0700); } else{ return; } } function mkName($i, $cesta){ $pom=0; //pokud vkladame 1. soubor, jeste zadny neexistuje: if(!file_exists("$cesta/$pom.".basename($_FILES['user_f']['type'][$i]))){ $jmeno = "$pom.".basename($_FILES['user_f']['type'][$i]); } //pokud uz byl alespon 1 soubor vlozeny... while(file_exists("$cesta/$pom.".basename($_FILES['user_f']['type'][$i]))){ $pom++; $jmeno = "$pom.".basename($_FILES['user_f']['type'][$i]); } //vrati nove jmeno: return $jmeno; } if(isset($_FILES['user_f'])){ echo "<p>velikost pole je : ".count($user_f)."<hr>"; for($i=0; $i < count($user_f); $i++){ print "<br>nazev: <b>". $_FILES['user_f']['name'][$i]."</b>"; print "<br>velikost: <b>". $_FILES['user_f']['size'][$i]." bajtů"."</b>"; print "<br>docsne umisteni: <b>". $_FILES['user_f']['tmp_name'][$i]."</b>"; print "<br>typ: <b>". $_FILES['user_f']['type'][$i]."</b>"; print "<br>chyba: <b>". $_FILES['user_f']['error'][$i]."</b>"; print "<br>cesta pro ulozeni: <b>".$cesta."</b>"; mkPath($cesta);//vytvori cestu $nazev_souboru = $_FILES['user_f']['tmp_name'][$i]; $new_jmeno = mkName($i, $cesta); $cil = "$cesta/"."$new_jmeno";//"$i.".basename($_FILES['soubor']['type'][$i]); if(move_uploaded_file($nazev_souboru, $cil)){ echo"<p>Soubor <b>\"".$_FILES['user_f']['name'][$i]."\"</b> byl uspene skopirovan jako: <b>".$cil."</b></p><hr><br><br>"; } else{ echo"<p>chyba pri uploadu<hr></p><br><br>"; } } } else{ echo"<form action=\"index.php?id=24\" method=\"post\" enctype=\"multipart/form-data\" name=\"uplForm\"> <input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"8388608\" /> <input type=\"hidden\" name=\"cislo_auta\" value=\"$cisloauta[1]\"/>"; for($i=0; $i < $pocet_foto; $i++){ echo"<p>zadej soubor: <input type=\"file\" name=\"user_f[]\" /></p>"; } echo" <p><input type=\"submit\" name=\"uploaduj\" title=\"uploaduj\" value=\"uploaduj\" /></p> </form>"; } ?>
-
>> move_uploaded_file(): Unable to access /img/238/0.jpeg chybne uvedena cesta, pokousis se pristupovat do rootu serveru $cesta = "/img/$cislo_auta"; zmen na $cesta = "./img/$cislo_auta";
-
w8, zkusim to ....
-
Warning: move_uploaded_file(): Unable to move '/tmp/phpJRopaO' to './img/239/0.jpeg' in /3w/wz.cz/a/autoin/pages/upload.php on line 50
-
http://mracek.hostuju.cz/y/upl.txt -> php a pokud ti to funguje, tak si najdi chybu. Pokud to nefunguje, tak by to homlo vypisovat nejakou chybu, treba, ze mas spatna prava na adresar nebo, ze adresar 239/ neexistuje a tak.
-
nejsem si jist, ale myslim, ze fce copy() je tady zakazana, ne?
-
a kdyz dam $cesta = "img/$cislo_auta"; Warning: move_uploaded_file(img/241/0.jpeg): failed to open stream: Permission denied in /3w/wz.cz/a/autoin/pages/upload.php on line 50
-
a kdyz jsem to zkousel na jine strance, tak mi to jede uplne bez problemu... kod z te 2. stranky : (soubor odkazuje o5 sam na sebe) <?php if($num>20)$num=20; echo "<p> num = $num"; $pocet_foto = $num; $cesta = "img/$c_a"; echo "<br>pocet foto: ".count($soubor)."<br>"; function mkPath($cesta){ if(!is_dir($cesta)){ mkdir ("$cesta", 0700); } else{ return; } } function mkName($i, $cesta){ $pom=0; //pokud vkladame 1. soubor, jeste zadny neexistuje: if(!file_exists("$cesta/$pom.".basename($_FILES['soubor']['type'][$i]))){ $jmeno = "$pom.".basename($_FILES['soubor']['type'][$i]); } //pokud uz byl alespon 1 soubor vlozeny... while(file_exists("$cesta/$pom.".basename($_FILES['soubor']['type'][$i]))){ $pom++; $jmeno = "$pom.".basename($_FILES['soubor']['type'][$i]); } //vrati nove jmeno: return $jmeno; } if(isset($_FILES['soubor'])){ for($i=0; $i < count($soubor); $i++){ print "<br>nazev: <b>". $_FILES['soubor']['name'][$i]."</b>"; print "<br>velikost: <b>". $_FILES['soubor']['size'][$i]." bajtů"."</b>"; print "<br>docsne umisteni: <b>". $_FILES['soubor']['tmp_name'][$i]."</b>"; print "<br>typ: <b>". $_FILES['soubor']['type'][$i]."</b>"; print "<br>chyba: <b>". $_FILES['soubor']['error'][$i]."</b>"; print "<br>cesta pro ulozeni: <b>".$cesta."</b>"; mkPath($cesta);//vytvori cestu $nazev_souboru = $_FILES['soubor']['tmp_name'][$i]; $new_jmeno = mkName($i, $cesta); $cil = "$cesta/"."$new_jmeno";//"$i.".basename($_FILES['soubor']['type'][$i]); if(move_uploaded_file($nazev_souboru, $cil)){ echo"<p>Soubor <b>\"".$_FILES['soubor']['name'][$i]."\"</b> byl uspene skopirovan jako: <b>".$cil."</b><hr><br><br>"; } else{ echo"<p>chyba pri uploadu<hr><br><br>"; } }//= $_SERVER['PHP_SELF'] } ?> <form action="index.php?id=1" method="post" enctype="multipart/form-data" name="uplForm"> <input type="hidden" name="MAX_FILE_SIZE" value="8388608" /> <input type="text" name="c_a" value="" /> <? for($i=0; $i < $pocet_foto; $i++){ echo"<p>zadej soubor: <input type=\"file\" name=\"soubor[]\" /></p>"; } unset($pocet_foto); ?> <p><input type="submit" name="uploaduj" title="uploaduj" value="uploaduj" /></p> </form>
-
"a kdyz jsem to zkousel na jine strance, tak mi to jede uplne bez problemu..." tak mas funkcni zdrojak a chybny zdrojak. Porovnanim hodnot promennych zjistis chybu. Dal bych na vsechny promenne ECHO "prom1=$prom1";
-
amalo: ty píšeš, že ti to funguje. Mě to teda nefunguje. Zkoušel jsem to na Apache 2 PHP 4.4.0 platforma Linux. Tak jak? Hledat chybu v tomhle prasokódu odmítám, sorry. Mrkni na tohle a zkus podle toho najít chybu / lepší ř ešení. http://cz2.php.net/manual/cs/features.file-upload.php
-
kdyz se bavime o prasokodu, tak nemuzu za to, ze to forum rusi odsazeni a cele to prepisovat se mi fakt nechce... a jestli jsi to jen vzal a skopiroval, tak ti to asi fakt nepujde, potoze ten soubor dostava informace jeste i z jine stranky, ktera tady bohuzel neni vyspana...
-
"a jestli jsi to jen vzal a skopiroval, tak ti to asi fakt nepujde" ... zase až tak špatně na tom ještě nejsem ;) Jinak nejde o odsazení, ale o něco jako tohle: 1) proč máš 6x za sebou print(); ? Nejde to složit do jednoho ? 2) Slyšel jsi o "jednoduchých uvozovkách" (apostrofum) ? 3) " return; " má dělat co? A když už teda řešíme tu nefunkčnost: co to píše za chybu?
-
takze se v tom nevyznas, protoze tam je 6x posobe 'print' (tady mas ty apostrofy)...A pokud jde o return, tak ten ve funkcich v objektove orientovanych jazycich ukoncuje funkci, alee to zajiste nemusi vysvetlovat. Ale zanchme malichernosti. ta chyba: Warning: move_uploaded_file(img/243/0.jpeg): failed to open stream: Permission denied in /3w/wz.cz/a/autoin/pages/upload.php on line 50 Warning: move_uploaded_file(): Unable to move '/tmp/phpIiFRbq' to 'img/243/0.jpeg' in /3w/wz.cz/a/autoin/pages/upload.php on line 50 redek c. 50 : if(move_uploaded_file($nazev_souboru, $cil)){ ...
-
amalo (autoin.wz.cz) a ten muj script jsi do ted nevyzkousel, vid? Jenze, mne by zajimalo, co ti vypisuje. php -> *.txt a sem das link a je to bez problemu s odsazenim if(move_uploaded_file($nazev_souboru, $cil)) jj, a pred tim provedeme $x = $nazev_souboru; echo "nazev = $x ".substr(sprintf('%o', fileperms($x)), -3); $x = $cil; echo "cil = $x ".substr(sprintf('%o', fileperms($x)), -3); a to ti vypisuje, co pekneho? print "<br>nazev: <b>". $_FILES['soubor']['name'][$i]."</b>"; print "<br>velikost: <b>". $_FILES['soubor']['size'][$i]." bajtů"."</b>"; print "<br>docsne umisteni: <b>". $_FILES['soubor']['tmp_name'][$i]."</b>"; print "<br>typ: <b>". $_FILES['soubor']['type'][$i]."</b>"; print "<br>chyba: <b>". $_FILES['soubor']['error'][$i]."</b>"; print "<br>cesta pro ulozeni: <b>".$cesta."</b>"; a tohle ti vypisuje, co pekneho? a mas nekde na webu PHP, aby jsme to mohli odzkouset aspon sami? if(!is_dir($cesta)){mkdir ("$cesta", 0700);} Nejsem si ted jistej, ale je 700 dostacujici opravneni, aby jsi mohl do adresare zapisovat? Podle mne, 700 znamena prava 7 pro FTP 0 pro script 0 pro guest
-
7 pro FTP 0 pro script 0 pro guest Zajímavý výklad práv k souborům. Pokud chci mít jistotu, že nebude problém se zapisováním, nastavím 777. Mělo by i stačit 666. Záleží, kdo vytváří adresář a soubory. Jestli FTP, nebo skript a jestli to navzájem kombinuji.
-
ten tvuj script jsem zkousel, tak jak byl, aniz bych ho nejak upravoval a 1 obrazek uploaduje i kdyz se mu neco nelibi... muzes to zkusit "http://sdhkopytov.wz.cz/u.php"... Jde o to, ze ale potrebuju uploadovat pole souboru a ten 2. kod, co jsem sem napsal bezi a mam tam prava taky tech 700 (http://sdhkopytov.wz.cz/?id=3 - ale je to hodne prasacky udelane, protoze jsem si to na tom jen zkousel a zjistoval v cem by moh byt zakopany pes, tak to pls omluv...Nejdrive tam zadas pocet obrezku pro upload a pak jak je tam "test" tj. slozka kam to nakopcit...) a kdyz to tam dam, tak to pise: nazev = /tmp/phpps77y0 600 Warning: fileperms(): Stat failed for img/245/0.jpeg (errno=13 - Permission denied) in /3w/wz.cz/a/autoin/pages/upload.php on line 53 cil = img/245/0.jpeg 0 Warning: move_uploaded_file(img/245/0.jpeg): failed to open stream: Permission denied in /3w/wz.cz/a/autoin/pages/upload.php on line 55 Warning: move_uploaded_file(): Unable to move '/tmp/phpps77y0' to 'img/245/0.jpeg' in /3w/wz.cz/a/autoin/pages/upload.php on line 55
-
amalo: "Permission denied" přístup odepřen. Změň adresáři práva pro zápis, tak aby tam mohl server (PHP) a potom to třeba půjde ;) "v objektove orientovanych jazycich" od kdy je čtyřková řada PHP plnohodnotný objektově orientovaný jazyk? Plná podpora OOP se objevila teprve v PHP5 ;) No a když už teda jsme v tom OOP, tak by jsi asi měl vědět, že v PHP by se mělo returnem vracet alespoň true; nebo false; když už teda nic jiného. "takze se v tom nevyznas, protoze tam je 6x posobe 'print'" já se v tom vyznám, ale když vidím, že systém musí zbytečně inicalizovat 5 printů, když by si v klidu vystačil s jedním ... ale nic. BTW: stringy uzavřený v apostrofech (') se narozdíl od uvozovek (") neprohánějí parserem ale jdou přímo na výstup, takže šetříš čas i sysémové prostředky. Ale to jsou, jak jsi sám říkal malichernosti takže nic.
-
zbi (knizky.unas.cz) priblizne, plus minus :) cz.php.net/fileperms cil = img/245/0.jpeg 0 Warning: move_uploaded_file(img/245/0.jpeg): failed to open stream: Permission denied in /3w/wz.cz/a/autoin/pages/upload.php on line 55 tak prava = 0 znamena, ze nemas zadne opravneni a jak uz jsem naznacil, opravneni mkdir ("$cesta", 0700); neni 777 ani 766 ani 666
-
diky, jsem zase o neco chytrejsi... A musim konstatovat, ze jsem 'debil'...bylo to temy pravy a uz mi to facha... Diky vsem za pomoc...
-
Ale... Proste jsi se s tim nesetkal, tak to nevis. Linux proste funguje jinak nez zavirovane win. http://cz.php.net/fileperms