Jump to content
php.lv forumi

File upload negrib strādāt


AndzX8-842

Recommended Posts

Kods ir mazliet papildināts http://lv.php.net/manual/en/features.file-upload.php paraugs.

 

HTML dokuments.

<!-- The data encoding type, enctype, MUST be specified as below -->
<form enctype="multipart/form-data" action="upload.php" method="post">
<!-- MAX_FILE_SIZE must precede the file input field -->
<input type="hidden" name="MAX_FILE_SIZE" value="30000" />
<!-- Name of input element determines name in $_FILES array -->
Send this file: <input name="userfile" type="file" />
<input type="submit" value="Send File" />
</form>

 

PHP dokuments.

http://paste.php.lv/2955

(ja no 5 līdz 8 rindiņai visam uzliek // priekšā un noņem extension pārbaudi, tad strādā)

 

Izdotais error.

Possible file upload attack!
Here is some more debugging info:Array
(
[userfile] => Array
	(
		[name] => background.jpeg
		[type] => 
		[tmp_name] => 
		[error] => 2
		[size] => 0
	)

)

 

Nekādi nesaprotu, kapēc [type] un [tmp_name] kaut kur pazūd un kā dabūt, lai strādātu. Acīmredzot šie abi netiek izveidoti vai ir vienreiz lietojami un tad no tiem atbrīvojas php_core(?). Lai nu kā, man neizdodas saprast, kur vaininieks paslēpies.

Link to comment
Share on other sites

ieliec tā koda apakšā

echo $_FILES['userfile']['error'];

un pasaki, ko izmet

 

oops, tas jau ir parādīts. error ir 2, tātad ir pārsniegts formā norādītais faila izmēra limits. formā ir norādīts 30000b, tātad fails, kuru tu gribēji uploadēt, ir lielāks par 30kb

Edited by php_Stopp
Link to comment
Share on other sites

Labi, tagad itkā strādā, bet nu ir nākamais jautājums. Kā noteikt faila izmēru pirms tas ir aizsūtīts uz serveri? Jo pašreizējais variants apskata izmēru tad, kad fails jau ir uz servera un tas rada zināmas problemas, piemēram, ja nu kāds izdomā 10GB failu pamēģināt aizsūtīt? Izmērs tiks noteikts, tikai, kad sūtīšana būs pabeigta...bet jēga kāda sūtīt failu, kurš tūlīt pēc augšuplādes tiks dzēsts un rij servera resursus...nekāda. Kā, lai ar to tiek galā? PHP manuālī rakstīts, ka faila izmēru var noteikt tikai servera galā.

 

Varbūt var norādīt savienojuma ilgumu datu pārraidei no servera uz datoru no kura augšuplādē? Nebūtu visai precīzi, bet labāk nekā nekas.

 

Idejas?

Link to comment
Share on other sites

×
×
  • Create New...