» »

php upload file problem

php upload file problem

i33a ::

Pozdravljeni, sem bolj začetnik v PHP-ju in imam problem pri spletni strani z katero bi lahko uploadal datoteke... Kaj je narobe z mojo kodo:
<html>
<h1>Upload a file... </h1>
<form action = 'upload.php' method='POST' enctype='multipart/form-data'>
	<input type='file' name ='myfile'> <p>
	<input type='submit' value ='Submit'>
</form>

<html>



in druga datoteka:
<?php

$name = $_FILES["myfile"]["name"];
$type = $_FILES["myfile"]["type"];
$size = $_FILE["myfile"]["size"];
$temp = $FILES["myfile"]["tmp_name"];
$error =  $_FILES["myfile"]["error"];

if($error > 0)
die("Error uploading file! Code $error.");
else
{
move_uploaded_file($temp, "upload/".$name);
echo "Uploaded!";
}

?>


Bi to delovalo tudi na strežniku z geslom in uporabniškim imenom?
Lp

mihaelf3 ::

Če ima strežnik to možnost vklopljeno (večina mislim da ima), bi moralo delati.
Potrebuješ le mapo upload, ki mora biti zapisljiva.

Ti pa, vkolikor nimaš drugih načrtov, priporočam da vključiš v kodo tudi kakšno omejitev tipa datoteke, saj zna biti tole kar precejšnja varnostna pomankljuvost.

t3hn0 ::

Ima direktorij upload pravice za pisanje (chmod)?
^.^

i33a ::

Tole kodo sem zaenkrat uporabil samo na XAMPP "strežniku" ampak datoteke mi ne prenese v mapo upload. Mislite da bi na strežniku delovalo? Hvala za nasvet glede omejitev tipa datotek, bom dodal tudi to.
Tole sem delal po nekem vodiču, kodo sem večkrat pregledal, ampak njemu je delalo meni pa ne... kaj bi bila lahko napaka?

keworkian ::

Kje se nahaja upload dir sploh?

i33a ::

Obe datoteki in upload dir se nahajajov C:\xampp\htdocs.

keworkian ::

Daj za foro spremen
move_uploaded_file($temp, "upload\\".$name); 

t3hn0 ::

Keworkian: To je načeloma ok da ima "upload/", meni to dela, preverjeno na win in linux serverjih.

i33a: še vedno ne vemo če imaš omogočene pravice na mapi za pisanje?
^.^

i33a ::

t3hn0, to bi takoj povedal, ampak nevem kje se to nastavi/vidi? Nekaj sem iskal, vendar nisem našel...

t3hn0 ::

Si na Windows? potem klikni z desno na mapo upload - properties - security - add/edit

Zdej pa ne vem kako Xampp deluje - se zazene kaksen user posebej (verjetno bo pisalo xampp) al uporablja windows racun? Ce bos dal grupi "Everyone" pravice za write bi moralo delati ;)
^.^

illion ::

pa si drgač že vidu da ti manjka podčrtaj klele?
$temp = $FILES["myfile"]["tmp_name"];

>> $_FILES, ne $FILES

edit: tud pri $size je narobe..

Zgodovina sprememb…

  • spremenil: illion ()

i33a ::

hvala vsem za pomoč.... sedeaj deluje :)
Narobe je bilo točno to kar je illion napisal...

Sem še bolj začetki in mi ne uspe narediti zaščite proti uploadanju datotek nekaterih vrst ali velikosti... kako to narediti?
Zanima me tudi če se da enostavno narediti seznam datotek v neki mapi in ga izpisati?

Zgodovina sprememb…

  • spremenil: i33a ()

illion ::

če ne uporabiš funkcije move_uploaded_file(), uploadana datoteka ostane v tmp (začasnem) direktoriju in se avtomatsko zbriše po koncu izvajanja skripte. Tko da samo preveri tist $size, če je prevelik, pač ne premakni datoteke/ne uproabi te funkcije.

Kar se tipov datotek tiče, maš v $type shranjen mime-type datoteke (preber na wikipediji če ne veš kaj je to). To je še kar zanesljiva možnost, samo preveriš, če je primeren mime-type, če ni, isto kot pri velikosti, pač pustiš datoteko pri miru.

za izpis fajlov maš velik opcij, ena dost preprosta je ta:
$files = glob("dir/*");
print_r($files);

mal uporab google, ker maš čist preprosta vprašanja in je velik primerov na netu, če še kej ne boš znal pa vpraši..

Zgodovina sprememb…

  • spremenil: illion ()

aljaz92 ::

Eno dodatno vprašanje imam pri tej temi, imam isto kodo vendar imam dodano katere datoteke so dovoljene, takole:

$allowedExts = array("jpg", "jpeg", "gif", "png", "doc", "pdf", "xls");



Potem pa imam še dodano naslednje:
if ((($_FILES["file"]["type"] == "image/gif")
				|| ($_FILES["file"]["type"] == "image/jpeg")
				|| ($_FILES["file"]["type"] == "image/png")
				|| ($_FILES["file"]["type"] == "/doc")
				|| ($_FILES["file"]["type"] == "/pdf")
				|| ($_FILES["file"]["type"] == "/xls")
				|| ($_FILES["file"]["type"] == "image/pjpeg"))


koda se nadaljuje ampak težave je v teh vrsticah, ker ne vem kako se določi za word, pdf in excel file, tako kot je recimo image/jpeg.

Hvala za pomoč.

usoban ::

http://www.iana.org/assignments/media-t...

application/msword
application/pdf
application/vnd.ms-excel

petzup ::

Ima kdo idejo kako kljub izpisani napaki recimo naložit druge fajle, sepravi nalagam multiple slik, pri nalaganju javi napako recimo slika obstaja, kako dejansko če je naenkrat izbranih več datotek ostale datoteke ki nimajo napak naloži, tista, ki pa izpiše napako pa pač ne? Sedaj imam rešeno če javi napako dejansko ne izvede koraka nagalanja naprej, kar je pa brezveze, ker zaradi ene nepravilne datoteke ne naloži posledično ostalih 20 datotek recimo. Kakšna koli pomoč bi mi prišla prav, koda pa se nahaja na http://pastebin.com/aRWxmLGD


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[JS / PHP] miniajax post

Oddelek: Programiranje
131030 (764) cobrica
»

upload zip datotek (slike)

Oddelek: Izdelava spletišč
121202 (988) Veron
»

php $_FILE in pravice

Oddelek: Izdelava spletišč
5723 (650) psychoP
»

[php] file upload problem (nicesar ni v /tmp, ubuntu)

Oddelek: Izdelava spletišč
91117 (1046) steev
»

EXIF - izpis podatkov o sliki v PHP ju?

Oddelek: Programiranje
121835 (1571) Cokolesnik

Več podobnih tem