Erori frecvente care apar atunci când se încarcă fișiere pe un server pe php

Fiecare dezvoltator web de novice a întâmpinat probleme atunci când a descărcat un fișier pe server. Acum vreau să creez un mic script pentru încărcarea pe server. și pe exemplul său încercați toate cele mai frecvente probleme pe care orice programator php se confruntă.







Fișierul nostru de testare va fi:

Acum, să vedem ce am scris aici:

Prima verificare este o verificare a prezenței fișierului descărcat. Dacă nu există, trimiteți mesajul la ecranul "Selectați un fișier". Dacă fișierul este selectat, începeți descărcarea.

Pentru început, în etichete

 Afișez conținutul matricei $ _FILES. Toate fișierele selectate în tipul de fișier de intrare sunt trimise la acest matrice. Pentru a înțelege ce lucrăm, afișez tot conținutul pe ecran într-o formă formatată (print_r ($ _ FILES)). Acum când selectăm un fișier și încercăm să îl încărcăm, vom vedea ceva de genul:

Ce elemente ale acestei matrice înseamnă, vom discuta mai târziu. Acum, să vedem cum se încarcă fișierul în PHP.

Înainte ca fișierul să intre în matricea $ _FILES. fișierul este încărcat într-un director temporar de pe server (de altfel, este afișat în elementul tmp_name al matrice $ _FILES). Apoi, folosind funcția move_uploaded_file (), acest fișier este copiat din directorul temporar la cel specificat de cel de-al doilea parametru al funcției (prima, așa cum a devenit deja clară, este calea spre fișier din directorul temporar). Trebuie remarcat faptul că calea către director trebuie specificată relativ la serverul rădăcină. Pentru a face acest lucru, vom folosi elementul matricei globale - $ _SERVER ['DOCUMENT_ROOT']. Aceasta finalizează descărcarea fișierului. Cred că nu este nimic complicat.







Acum, ia în considerare ce este în tabela $ _FILES.

Această matrice conține toate fișierele selectate în formular, încărcate anterior în directorul temporar. Încă acolo informațiile despre fișier sunt introduse imediat:

Acum ia în considerare erorile frecvente atunci când încărcați fișiere pe server în PHP.

În elementul matricei de erori pot exista doar 8 variante de erori (jumătate adăugate în versiunea 5):

Deoarece utilizatorii nou-veni fac următoarele erori la încărcarea fișierelor în PHP:

  • Nu este specificat enctype = "multipart / form-data" sub forma încărcătorului
  • Fișierul către încărcător nu are dreptul de a scrie fișierul. Pentru a face acest lucru, în orice manager FTP, de exemplu FileZilla, selectați descărcătorul de fișiere, faceți clic dreapta și selectați opțiunea "Permisiuni fișier". Apoi bifați toate elementele din "Înregistrare".
  • Ele nu se referă la numele fișierului specificat în atributul - nume al formularului.

Vă recomandăm foarte mult ca, în timpul fazei de depanare a descărcării fișierului, să scoateți întotdeauna conținutul matricei $ _FILES cu următorul cod:

Așa am făcut în exemplul meu pentru a monitoriza constant conținutul acestui matrice.







Articole similare

Trimiteți-le prietenilor: