Ultimele tutoriale de dezvoltare web
 

PHP Încărcați 5 fișiere


Cu PHP, este ușor de a încărca fișiere pe server.

Cu toate acestea, cu ușurință vine un pericol, astfel încât să fie întotdeauna atenți atunci când permițând încărcarea fișierelor!


Configureaza "php.ini" Fișier

În primul rând, asigurați-vă că PHP este configurat pentru a permite încărcări de fișiere.

În dvs. "php.ini" fișier, caută directiva file_uploads și setați - l la On:

file_uploads = On

Creați formular HTML

Apoi, creați un formular HTML care permite utilizatorilor să aleagă fișierul imagine pe care doresc să îl încărcați:

<!DOCTYPE html>
<html>
<body>

<form action="upload.php" method="post" enctype="multipart/form-data">
    Select image to upload:
    <input type="file" name="fileToUpload" id="fileToUpload">
    <input type="submit" value="Upload Image" name="submit">
</form>

</body>
</html>

Unele reguli de urmat pentru formularul HTML de mai sus:

  • Asigurați-vă că formularul folosește metoda = „post“
  • Forma are nevoie , de asemenea, following atribut: enctype = "multipart / form-date". Acesta specifică ce tip de conținut de utilizat la trimiterea formularului

Fără cerințele de mai sus, încărcarea fișierului nu va funcționa.

Alte lucruri pentru a observa:

  • type="file" atribut al <input> tag - ul prezinta câmpul de introducere ca un fișier de control-select, cu un "Browse" buton de lângă comanda de intrare

Formularul de mai sus trimite date într - un fișier numit "upload.php" , pe care o vom crea următoarea.


Creați Upload File PHP Script

"upload.php" fișier conține codul pentru încărcarea unui fișier:

<?php
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);
// Check if image file is a actual image or fake image
if(isset($_POST["submit"])) {
    $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
    if($check !== false) {
        echo "File is an image - " . $check["mime"] . ".";
        $uploadOk = 1;
    } else {
        echo "File is not an image.";
        $uploadOk = 0;
    }
}
?>

script PHP a explicat:

  • $ target_dir = "uploads/" - specifică directorul în care fișierul va fi plasat
  • $ Target_file specifică calea fișierului care urmează să fie încărcat
  • $ uploadOk = 1 nu este utilizat încă (will be used later)
  • $ ImageFileType deține extensia fișierului
  • Apoi, verificați dacă fișierul de imagine este o imagine reală sau o imagine falsă

Notă: Veți avea nevoie pentru a crea un nou director numit "uploads" în directorul unde "upload.php" se află fișierul. Fișierele încărcate vor fi salvate acolo.


Verificați dacă fișierul există deja

Acum putem adăuga unele restricții.

În primul rând, vom verifica dacă fișierul există deja în "uploads" dosar. Dacă da, este afișat un mesaj de eroare, iar $ uploadOk este setat la 0:

// Check if file already exists
if (file_exists($target_file)) {
    echo "Sorry, file already exists.";
    $uploadOk = 0;
}

Dimensiune Limită fișier

Câmpul de introducere fișier în formularul nostru HTML de mai sus este numit "fileToUpload" .

Acum, vrem să verificați dimensiunea fișierului. Dacă fișierul este mai mare decât 500KB, este afișat un mesaj de eroare, iar $ uploadOk este setat la 0:

 // Check file size
if ($_FILES["fileToUpload"]["size"] > 500000) {
    echo "Sorry, your file is too large.";
    $uploadOk = 0;
}

Limită Tip fișier

Codul de mai jos doar permite utilizatorilor să încarce JPG, JPEG, PNG, GIF și fișiere. Toate celelalte tipuri de fișiere dă un mesaj de eroare înainte de $ uploadOk la 0:

// Allow certain file formats
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
    echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
    $uploadOk = 0;
}

Complet Încărcare fișier PHP Script

Complet "upload.php" fișier acum arata ca acest lucru:

<?php
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);
// Check if image file is a actual image or fake image
if(isset($_POST["submit"])) {
    $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
    if($check !== false) {
        echo "File is an image - " . $check["mime"] . ".";
        $uploadOk = 1;
    } else {
        echo "File is not an image.";
        $uploadOk = 0;
    }
}
// Check if file already exists
if (file_exists($target_file)) {
    echo "Sorry, file already exists.";
    $uploadOk = 0;
}
// Check file size
if ($_FILES["fileToUpload"]["size"] > 500000) {
    echo "Sorry, your file is too large.";
    $uploadOk = 0;
}
// Allow certain file formats
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
    echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
    $uploadOk = 0;
}
// Check if $uploadOk is set to 0 by an error
if ($uploadOk == 0) {
    echo "Sorry, your file was not uploaded.";
// if everything is ok, try to upload file
} else {
    if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
        echo "The file ". basename( $_FILES["fileToUpload"]["name"]). " has been uploaded.";
    } else {
        echo "Sorry, there was an error uploading your file.";
    }
}
?>

Finalizarea PHP Sistem de fișiere de referință

Pentru o referință completă de funcții sistem de fișiere, du - te pentru a finaliza nostru PHP Sistem de fișiere de referință .