Autor | Zpráva | ||
---|---|---|---|
wNi' Profil * |
#1 · Zasláno: 31. 1. 2011, 11:27:17
Ahoj, postavil (alebo skopíroval a pomenil) som script s uploadom obrázkov, všetko ide, súbor sa uploadne tam, kam má ale ponechá si svoje meno, preto som sa začal zaujímať o funkciu rename();, tak som sa pozrel na php.net, čo to pobral od nich, a zapísal to takto (spolu s celým scriptom prikladám) :
<? include "db.php"; $uploaddir = './upload/'; $uploadfile = $uploaddir . basename($_FILES['subor']['name']); if (move_uploaded_file($_FILES['subor']['tmp_name'], $uploadfile)) { echo "File is valid, and was successfully uploaded.\n"; } else { echo "File uploading failed.\n"; } $imageinfo = getimagesize($uploadfile); if($imageinfo['mime'] != 'image/png' && $imageinfo['mime'] != 'image/jpeg') { echo "Sorry, we only accept png and JPEG images\n"; exit; } echo $uploadfile.";"; echo $_GET["id"]; if (rename($uploadfile, "lama".".png")) echo "ok"; else echo "not ok"; die (); header("Location: index.php"); ?> Zatial som to vopchal do If-u, lebo som chcel vediet, či to teda zmenil aelbo nie. Okrem toho som chcle síce pôvodne dosiahnúť, aby sa obrazok volal $id.png, ale keď mi celý script prestal fungovať, zapochyboval som, či som to napísal správne, takže pre začiatok Lama.png... Keď rename odstránim, všetko ide úplne v pohode, obrazok sa uploadne, keď ho tam dám kukám na čistú stránku alebo pri najhoršom mi hodi error... Neviem čo s tým :-/ Ani brat mi nevedel povedať...Ďakujem za odpovede |
||
wNi' Profil * |
#2 · Zasláno: 31. 1. 2011, 11:32:20
*oprava... Nekukam na prazdnu stranku lebo mi echo stihne v medzicase vypisat nazov suboru, ID z url, a ten dlhsi text hore ze to uploadol...
|
||
Tori Profil |
#3 · Zasláno: 31. 1. 2011, 11:34:09 · Upravil/a: Tori
Jaký error to háže?
Nepomohlo by používat absolutní cesty k souborům? Pozrite si hned první komentář v manuálu u funkce rename. edit: ↓ Zdejší zvýrazňovač kódu kromě barevného odlišení i některé názvy funkcí, příkazů apod. podtrhává - tj. změní je na odkaz na příslušnou stránku manuálu. |
||
wNi' Profil * |
#4 · Zasláno: 31. 1. 2011, 11:58:54
Momentálne v takomto štádiu vypíše len "File is valid, and was successfully uploaded. ./upload/war.png;64ok", čize všetko sedí, podla neho bol súbor uploadnutý (čo nebol), vypíše aj ID aj to že sa súbor úspešne premenoval (tým "ok")... Predtým mi hádzal "unexpected T_RENAME", alebo mu vadili zátvorky, bez ktorých by to nešlo vôbec atď. Preto som tam aj narval ten if, viacej mi toho povie, a absolútne cesty som skúšal, teda ak som tej ukážke správne pochopil, narval som tam teda ./upload/$uploadfile, ale to mi zas vyhodil že mám zle zapísanu cestu a že ./upload/ ./upload/DSC000.jpg (napr. ja si to presne nepametám) neexistuje, prirodzene..
A poslednej vete nechápem (som začiatočník, prvy komentár som pozrel ale kam to mám kliknúť?) Ďakujem |
||
Tori Profil |
#5 · Zasláno: 31. 1. 2011, 12:12:50
Absolutní cestu jsem myslela toto:
$uploaddir = dirname(__FILE__).'/upload/'; //.... if (rename($uploadfile, $uploaddir.'lama.png')) echo 'ok'; // atd. |
||
wNi' Profil * |
#6 · Zasláno: 31. 1. 2011, 12:23:48
Vypísalo zaujímavosť (najmä tie lomítka :D): File is valid, and was successfully uploaded. C:\Program Files\EasyPHP-5.3.4.0\www/upload/war.png;64ok
Ale bezchybne funguje O_o.. :) Ďakujem, veľmi si mi pomohla :) |
||
Tori Profil |
#7 · Zasláno: 31. 1. 2011, 12:34:26
Ještě by se dalo místo natvrdo psaných lomítek použít PHP konstantu DIRECTORY_SEPARATOR, pak by byly všechny jedním směrem :)
|
||
wNi' Profil * |
#8 · Zasláno: 31. 1. 2011, 13:18:31
No, pokial to pojde aj na nete tak je dobre tak ako je :).. Ja sa nezvyknem sparat v tom, comu skutocne ani nerozumiem :D ked to ide tak som rad, za co som velmi vdacny :)...
|
||
Časová prodleva: 13 let
|
0