Încărcați fișiere în php

Cum se păstrează php

descărcarea de fișiere principii

Orice fișier descărcat va fi plasat într-un director special pentru depozitarea temporară și se adaugă informații legate de superglobale $ _FILES. Dacă nu mutați fișierul într-o locație diferită după finalizarea script-ul se va șterge fără urmă. Setarea temporară director de stocare determinat fișier upload_tmp_dir de configurare php.ini.







Superglobale $ _FILES matrice

Dacă se utilizează împreună cu cererea curentă fișierele au fost descărcate, PHP-interpret va completa automat în superglobale matrice $ _FILES de informații relevante. Structura sa este destul de simplu. elemente de matrice sunt numele parametrilor HTTP-cerere. De exemplu, forma dvs. Web conține câmpul de încărcare fișier cu atributul «name =«upload-fișier»». În acest caz, informațiile se adaugă la $ _FILES [ „upload fișier“].

Conținutul de matrice $ _FILES:

  • $ _FILES [ „câmp de interogare“] [ „nume“] - numele real al fișierului, pe care a trebuit să fie trimis.
  • $ _FILES [ „câmp de interogare“] [ „dimensiune“] - dimensiunea fișierului încărcat în octeți.
  • $ _FILES [ 'câmp de interogare'] [ 'tip'] - MIME fișier de tip.
  • $ _FILES [ „câmp de interogare“] [ „tmp_name“] - conține numele fișierului, care la numit interpret atunci când este plasat într-un director temporar;
  • $ _FILES [ „câmp de interogare“] [ „eroare“] - codul de eroare a avut loc în timpul încărcării. Dacă totul merge bine, elementul va avea o valoare de „0“.






un câmp de formular Web poate avea mai multe atribute. permite selectarea multiplă a fișierelor. Într-un astfel de caz, elementele de nume. dimensiune. tip. tmp_name și eroare va fi matrice. De exemplu, două fișiere sunt descărcate prin câmpul de formular cu numele de test-fișier. Ia numele primului fișier poate fi în $ _FILES [ 'test-fișier'] [ 'name'] [0]. un al doilea $ _FILES [ 'test-fișier'] [ 'name'] [1].

notă
Există o cerință pentru câmpurile HTML markup, efectuarea de selecție multiple și descărcarea fișierelor. Numele lor atribut trebuie să fie întocmit după cum urmează «name =«- nume de atribut []».“ Dacă omiteți structura []. PHP va procesa doar un singur fișier.

Mutați fișierul descărcat

Pentru a muta fișierele descărcate au o funcție specială move_uploaded_file (). Este nevoie de doi parametri șir necesar. Primul indică numele fișierului în directorul temporar, iar al doilea - calea de destinație. Funcția returnează true dacă are succes și fals. în cazul în care apare o eroare.

Cu funcția is_uploaded_file (), puteți verifica dacă fișierul descărcat în cererea curentă. Este nevoie de un singur parametru - numele fișierului, și returnează un rezultat boolean.

important
PHP vă permite să modificați locația fișierelor descărcate cu funcțiile normale de copiere sau mutare. Cu toate acestea, este destul de periculos. Există un număr de uhischronnyh atacuri bazate pe o astfel de abordare pe termen scurt.

Pentru a muta și de a verifica existența fișierelor descărcate Utilizați întotdeauna move_uploaded_file () și is_uploaded_file (). În procesul de punere în aplicare care efectuează validarea avansată și automat de ecran dintr-o serie de atacuri comune.

Exemplu de fișier de descărcare la server

Mai jos este un exemplu script PHP. În cazul în care este invocat pentru prima dată în cererea curentă nu este un fișier de încărcare, utilizatorul va forma. Când descărcarea, fișierul este mutat în directorul rădăcină al site-ului, așa cum se arată la informațiile de utilizator asociat cu acesta. prelucrate numai imagini în format jpg. jpeg si png.

Ponderea în sotscetyah: