Problema script uploader

Aici prezentati probleme, intrebari, sau orice subiecte legate de scripturi si tutoriale de pe site.
Catalin92
Mesaje: 3

Problema script uploader

Buna, am o problema cu scriptul de upload de la voi.
Vreau sa uploadez un fisier de 9216 Kb (9 Mb) si imi spune ca este prea mare pentru a fi uploadata, desi eu am pus ca marimea maxima poate fi de 100000000000000000 Kb.
Tin sa precizez ca scriptul este la mine in calculator, il folosesc pentru inceput cu WAMP Server.
http://img838.imageshack.us/img838/6451/problemascriptupload.png

MarPlo Mesaje: 4343
Salut
Incearca sa pui doar $max_size = 11000; (fara adaugare acest numar in alta parte, adica fara la if($_FILES...) ). Probabil numarul e prea mare si-l interpreteaza altfel.
Daca nici asa nu merge, o fi limitarea mai mica in setarile serverului, dar la asta nu ma pricep.

Catalin92 Mesaje: 3
nu a mers, la inceput am crezut ca nu accepta fisiere muzicale, dar dupa aceea am incarcat un fisier mai mic cu muzica si am reusit sa0-l uploadez,.
Nu stiu care este problem, dar tin sa precizez din nou ca folosesc WAMP Server sa testez scriptul, si nu merge pe WAMP.

SI as mai avea o problema, as dorii sa fac ca fisierul sa fie redenumit automat, astfel incat sa nu existe mai multe fisiere cu acelasi nume.

MarPlo Mesaje: 4343
Daca merge cu fisiere mai mici, problema e ori limitarea de upload din setarile serverului (asta nu stiu de unde se modifica), ori ai mai schimbat undeva.
Nu vor exista 2 fiisiere cu acelasi nume in acelasi director, cel nou il rescrie pe cel vechi.
Numele fisierului copiat pe server e setat la linia:

Cod: Selectaţi tot

$uploadpath = $uploadpath . basename( $_FILES['fisiere']['name']);
Daca vrei un nume aleator, inlocuiesti: basename( $_FILES['fisiere']['name']) cu un sir aleator pe care-l creezi, dupa care adaugi extensia.
Cam asa, inlocuiesti:

Cod: Selectaţi tot

$uploadpath = $uploadpath . basename( $_FILES['fisiere']['name']);
$type = end(explode(".", strtolower($_FILES['fisiere']['name'])));
Cu:

Cod: Selectaţi tot

$type = end(explode(".", strtolower($_FILES['fisiere']['name'])));
$uploadpath = $uploadpath . md5( $_FILES['fisiere']['name']). '.'. $type;
Sau faci Tu alta functie in loc de md5() pt. sirul aleator.

Catalin92 Mesaje: 3
Daca totusi nu reusesti, daca poti, te rog, sa ma inveti cum sa fac sa nu-l uploadeze, daca mai exista.

MarPlo Mesaje: 4343
Se poate verifica cu functia file_exists($fisier) daca fisierul din $fisier exista deja.
Se face verificarea inainte de linia in care e codul ce face upload, daca exista, returnezi un exit().
Cam asa:

Cod: Selectaţi tot

//...
if (file_exists($uploadpath)) { exit('Fisierul exista deja'); }
if(move_uploaded_file($_FILES['fisiere']['tmp_name'], $uploadpath)) { 
  // ...
} 

Subiecte similare