Hai să începem rapid cum să rezolvăm încărcarea fișierelor cu PHP, in modul pur. Avem nevoie de:
1. HTML Form
Trebuie să creați un formular HTML care să conțină câmpurile cu care utilizatorul va interacționa pentru a încărca un fișier. Creați un fișier index.html în directorul dvs. rădăcină și adăugați următorul cod:
!DOCTYPE html> <html lang="ro"> <head> <meta charset="UTF-8"> <title>Incarca fisiere cu PHP</title> </head> <body> <form action="upload.php" method="post" enctype="multipart/form-data"> Upload a File: <input type="file" name="myfile" id="fileToUpload"> <input type="submit" name="submit" value="Incarca fisierul" > </form> </body> </html>
În codul de mai sus, avem un formular cu un câmp de introducere și un buton de trimitere. Eticheta formularului are un atribut de acțiune care indică scriptul care va avea grijă de procesul de încărcare efectivă. De asemenea, are un atribut de metodă care specifică tipul de operațiune pe care această formă o va întreprinde, care este o acțiune POST.
2. Script de încărcare PHP
Creaza un fisier cu numele upload.php si adauga acest cod in el.
<?php $currentDir = getcwd(); $uploadDirectory = "/uploads/"; $errors = []; $fileExtensions = ['jpeg','jpg','png']; $fileName = $_FILES['myfile']['name']; $fileSize = $_FILES['myfile']['size']; $fileTmpName = $_FILES['myfile']['tmp_name']; $fileType = $_FILES['myfile']['type']; $fileExtension = strtolower(end(explode('.',$fileName))); $uploadPath = $currentDir . $uploadDirectory . basename($fileName); if (isset($_POST['submit'])) { if (! in_array($fileExtension,$fileExtensions)) { $errors[] = "Această extensie de fișier nu este permisă. Încărcați un fișier JPEG sau PNG"; } if ($fileSize > 2000000) { $errors[] = "Acest fișier este mai mult de 2 MB. Ne pare rău, trebuie să fie mai mică sau egală cu 2MB"; } if (empty($errors)) { $didUpload = move_uploaded_file($fileTmpName, $uploadPath); if ($didUpload) { echo "Fisierul " . basename($fileName) . " a fost incarcat"; } else { echo "A apărut o eroare undeva. Încercați din nou sau contactați administratorul"; } } else { foreach ($errors as $error) { echo $error . "These are the errors" . "\n"; } } } ?>
Trebuie creat un folder cu numele uploads pentru ca fisierele sa fie incarcate acolo.