Stalo se mi to poprvy - takova blbost - proc mi na tohle
C:\Documents and Settings\xxx\Dokumenty\bi\blatnice_skvrnita.jpg
pri uploadu napise PHP failed to open stream, no such file
(pochopitelně existuje)
zkoušel jsem wechslovat s / a \ a // a \\ a ono nic...
co dělám špatně? Doma na WAMPu mi to fachci a na serverech na netu ne.... :(
Diky
Nemají windowsy nějaký atribut souboru "upload enabled"? (-; Ne, to je vtip. Ten skript, který to nahrává na server určitě pomůže tuto záhadu vyřešit.
copy("C:\Documents and Settings\xxx\Dokumenty\bi\blatnice_skvrnita.jpg", "../../$way/img/" . $nazev . $th . "." . $pripona);
všechny potřebné proměnné skript má. Jak říkám. Doma mi to jde a kdekoli jinde ne.
// upload enabled - ani bych se nedivil :)
copy to hlada na serveri :))
To myslíš važně? Pomocí copy() uploaduju už 3 roky. To asi nebude ono...
server patrně nemá adresář "C:\Documents and Settings\xxx\Dokumenty\bi\blatnice_skvrnita.jpg". K tomu, aby takovýto adresář na serveru byl, je potřeba dvou věcí:
1) někdo musí na serveru místo Linuxu nainstalovat Windows NT (např. XP)
2) někdo musí takový adresář a soubor vytvořit.
Kroky musí jít v tomto pořadí a nelze je zaměnit. Bohužel pro tebe se ale v dohledné době přechod na Windows XP nechystá. A i kdyby náhodou ano, patrně se nenajde nikdo, kdo by byl ochotný vytvořit takovýhle adresář a vložit do něj požadovaný soubor.
Každopádně tě mohu ujistit, že ani potom nebude skript fungovat. Patrně proto, že zpětné lomítko v dvojitých uvozovkách vytváří tzv. escape sekvenci a přitom s sebou vezme nějaké následující znaky. Proto by bylo vhodné zpětná lomítka zdvojit, nebo cestu uzavřít do apostrofů.
>>To myslíš važně?
ano, myslim
>>Pomocí copy() uploaduju...
copy neuploaduje, kopiruje
>>To asi nebude ono...
ale bude
hele lidi, my si nerozumííme, ja nenahrávám ze serveru, ale z PC. A sorry, ale Input type="file" odešle tenhle řetězec...
njn, lenze ono sa to nahra na server (to obstara web. server) a cesta v input file je na disku, musis pouzit cestu na serveri :)
Že jsi to ty, nabídneme ti pár možností, jak to opravit. Smíš požádat o 50/50, nápovědu publika či přítele po telefonu:
Otázka za 1000 Kč,
Která z následujících možností nejlépe uleví tvému trápení s uploadem?
A. move_uploaded_file
B. format_c
C. RTFM
D. STFW
1) Já už mlčím, jsem vůl, uznávám, sorry
2) RTFM to asi nebude
3) STFW - kam na to chodíš,
4) format_c, že by?
5) move_uploaded_file? To asi ne ;)
Že bych si vzal závratných 0,- a šel?
Uvidim, testnu. Diky
Vrátim TRUE nebo FALSE (jako každá správná fce)
Jen mi při porodu někdo zadal špatný parametry ;)
» 1) Já už mlčím, jsem vůl, uznávám, sorry
Sebekritika neuškodí, ale od toho je tohle fórum, aby se tu radilo ;) Komu není shůry dáno, na fóru zakoupí.
» 3) STFW - kam na to chodíš,
Do cukrárny za rohem.
» Vrátim TRUE nebo FALSE (jako každá správná fce)
Teda tobě bych nechtěl půjčovat žádný peníze.
» Jen mi při porodu někdo zadal špatný parametry ;)
To neřeš, jediný přijatelný parametr byl v té době "tlač!", při selhání došlo k použití general exception fault nože.
Co takhle <form method="post" enctype="multipart/form-data">
//Co takhle <form method="post" enctype="multipart/form-data">
co když si to neposílám formem :)
BTW. FALSE...
když vyměnim copy za move_uploaded_file tak se tak nějak nic neděje...
zjevně jsem nepochopil princip fce...
> co když si to neposílám formem
A jak tedy? Predne sem vystav ten skript, at ho muzem opravit.
> A jak tedy? Predne sem vystav ten skript, at ho muzem opravit.
to bylo protoze mi nefachal ani ta primo zadana cesta
tenhle input mi přidává ShowModalDialog do divu, kt. je součástí formu:
<input type="File" name="imguploader[]" id="Path">
PHP si přepočítá počet $imguploader a pak nic:
if((count ($imguploader)) != 0){
for($obr = 0; $obr < count($imguploader); $obr++){
$pripona = substr($HTTP_POST_FILES['imguploader']['name'][$obr], -3, 3);
if($th == ""){
$th = 1;
}
if(copy($HTTP_POST_FILES['imguploader']['tmp_name'][$obr], "../../$way/img/" . $nazev . $th . "." . $pripona)){
echo "Nahrávám obrázek č.$th.<br />";
}
}
Ten formular tam prave mit musis, proto ti to nejde. Soubor se odesila http pozadavkem POST a je soucasti pozadavku. Prohlizec musi nejak vedet, ze ma toto udelat. jinak mi ten skript pripada cely nejaky zmateny...
Když mi to nešlo s formem, testoval jsem jen PHP část.
Ale form tam mám:
<form action=\"create.php\" enctype=\"multipart/form-data\" method=\"post\">
a co má na tom skriptu bejt zmatenýho?
Ten tag <form> je v echu, nebo proč tam jsou ty zpětný lomítka?
Ha, už jsem našel chybu lávky...
Ten ShowModal dialog tam sice vloží ten input, ale...
Doma mi to chodí (obsah file se bere jakoby to byl input type=text), copy tudíž upladuje soubor z mého disku (za použití adresy 127.0.0.1/C:\...) a to na serveru tak nějak teda chodit nemůže.
Škoda, že nejde nahrát na server soubor z klienta specifikovanej textem - cestou... :(
Ten ShwMdlDlg mi totiž ještě vrací koomentář k obrázku a jeho zarovnání v HTMLAREA --> stránce....
To budu asi muset vymyslet něco lepčího, co?
Jhirka: At se nad zamejslim, jak chci, tak ti proste nerozumim...
s enctype="multipart/form-data" a method="post" se <b>musí</b> poslat soubor, jinak to nejde. Teda jestli náhodou nepužíváš nějaký hodně mizerný prohlížeč (žádný co to neumí neznám).
Jasný, posvedlo se mi totiž stvořit mrchu, která uploadovala na základě cesty v textovym inputu a že můj PC je díky WAMP server a ten soubor zadaný v tom inputu existoval, tak to fachcilo....
Blbec, no
Už to předělávám...
Škoda úhozů do klávesnice, sorrac