Upload file lên server php
Có một biến PHP toàn cục là $_FILES. Biến này là một mảng mảng liên hợp và giữ tất cả thông tin liên quan đến file được tải lên. Vì vậy, nếu giá trị gán cho thuộc tính name của input trong form upload là file, khi đó PHP có thể tạo 5 biến sau:
Show Note: You will need to create a new directory called "uploads" in the directory where "upload.php" file resides. The uploaded files will be saved there. Check if File Already ExistsNow we can add some restrictions. First, we will check if the file already exists in the "uploads" folder. If it does, an error message is displayed, and $uploadOk is set to 0: // Check if file already exists Limit File SizeThe file input field in our HTML form above is named "fileToUpload". Now, we want to check the size of the file. If the file is larger than 500KB, an error message is displayed, and $uploadOk is set to 0: // Check file size Limit File TypeThe code below only allows users to upload JPG, JPEG, PNG, and GIF files. All other file types gives an error message before setting $uploadOk to 0: Tải hình ảnh lên máy chủ web là một chức năng phổ biến trong phát triển web, trong hướng dẫn này, chúng tôi sẽ giới thiệu cách tải hình ảnh lên bằng PHP. Bạn có thể học cách sử dụng PHP để tải hình ảnh lên máy chủ. Tạo biểu mẫu để tải lên hình ảnhChúng ta sẽ sử dụng hình thức html để tải lên hình ảnh. Để gửi dữ liệu hình ảnh, chúng ta nên đặt
Đoạn mã này sẽ gửi dữ liệu hình ảnh đến upload.php , upload.php sẽ nhận dữ liệu hình ảnh và lưu vào máy chủ web. Làm thế nào để nhận dữ liệu hình ảnh và lưu hình ảnh trong upload.php?upload.php sẽ sử dụng upload.php đã nhận được dữ liệu hình ảnh, nó sẽ lưu hình ảnh đã tải lên này vào một đường dẫn tạm thời, chúng ta sẽ sử dụng move_uploaded_fil () để di chuyển tệp tạm thời này đến thư mục đích của chúng ta. Đảm bảo rằng tệp được tải lên là hình ảnhĐể tải lên hình ảnh, chúng ta nên đảm bảo rằng tệp tải lên là một hình ảnh, chúng ta nên kiểm tra tên tệp hoặc loại mime của tệp.
Đảm bảo kích thước tệp hợp lệChúng tôi nên giới hạn kích thước tối đa của hình ảnh, điều này rất hữu ích cho máy chủ web của bạn.
Lưu hình ảnh đã tải lênTrong ví dụ này, chúng tôi sẽ tải hình ảnh lên thư mục tải lên , chúng tôi có thể Với PHP việc tải tệp lên máy chủ khá dễ dàng. Tuy nhiên thì càng dễ thì càng đi kèm với một số nguy hiểm, vì vậy mà hãy cẩn thận nhé! Khi ta upload một file lên thì trên Server sẽ nhận được 5 thông số cho một file, và PHP sẽ dựa vào các thông số đó để tiến hành upload, các thông số đó là:
Nội Dung
Đầu tiên ta sẽ phải tạo một biểu mẫu HTML cho người dùng chọn tệp. Để upload file lên Server thì ban phải sử dụng form có thuộc tính enctype=”multipart/form-data” và phương thức POST, thẻ input sẽ có type=”file”. Một số quy tắc cần tuân theo cho biểu mẫu HTML ở trên:
Nếu không có các yêu cầu ở trên, quá trình tải lên tệp sẽ không hoạt động. Biểu mẫu ở trên gửi dữ liệu đến một tệp có tên “upload.php”, tệp này chúng ta sẽ tạo tiếp theo. 2. File PHPTa sẽ tạo một file là upload.php và code để tải tệp lên: Mình sẽ giải thích một số câu lệnh:
Lưu ý Bạn sẽ cần tạo một thư mục mới có tên “uploads” trong thư mục chứa tệp “upload.php”. Các tệp đã tải lên sẽ được lưu ở đó. 3. Kiểm tra tồn tại của file trong PHPChúng ta sẽ kiểm tra tệp đã tồn tại trong thư mục uploads hay chưa. Nếu có, một thông báo lỗi sẽ hiển thị và $uploadOk được đặt thành 0: // kiểm tra tồn tại của file if (file_exists($target_file)) { echo "Xin lỗi, tệp đã tồn tại."; $uploadOk = 0; }4. Giới hạn loại tệp và giới hạn kích thước tệp Trường nhập tệp trong biểu mẫu HTML của chúng ta ở trên được đặt tên là “fileToUpload”. Bây giờ, chúng ta muốn kiểm tra kích thước của tệp. Nếu tệp lớn hơn 500KB, một thông báo lỗi sẽ hiển thị và $uploadOk được đặt thành 0: //kiểm tra kích thước file if ($_FILES["fileToUpload"]["size"] > 500000) { echo "Xin lỗi, tệp của bạn quá lớn."; $uploadOk = 0; } Đoạn mã dưới đây chỉ cho phép người dùng tải lên các tệp JPG, JPEG, PNG và GIF. Tất cả các loại tệp khác đều đưa ra thông báo lỗi trước khi đặt $uploadOk thành 0: // Cho phép các định dạng tệp nhất định if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" && $imageFileType != "gif" ) { echo "Xin lỗi, chỉ cho phép các tệp JPG, JPEG, PNG & GIF."; $uploadOk = 0; }5. Hoàn thành file PHP để tải hình ảnh Các bạn có thể ghép các phần trên lại để thành một file upload.php hoàn chỉnh. Và nó sẽ tương tự như sau: 500000) { echo "Xin lỗi, tệp của bạn quá lớn."; $uploadOk = 0; } // Cho phép các định dạng tệp nhất định if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" && $imageFileType != "gif" ) { echo "Xin lỗi, chỉ cho phép các tệp JPG, JPEG, PNG & GIF."; $uploadOk = 0; } // Kiểm tra xem $ uploadOk có được đặt thành 0 do lỗi không if ($uploadOk == 0) { echo "Xin lỗi, tệp của bạn không được tải lên."; //nếu mọi thứ đều ổn, hãy cố gắng tải tệp lên } else { if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) { echo "Tập tin ". htmlspecialchars( basename( $_FILES["fileToUpload"]["name"])). "đã được tải lên."; } else { echo "Xin lỗi, đã xảy ra lỗi khi tải tệp của bạn lên."; } } ?> Lưu ý Nếu bạn muốn trang của mình tự reset lại thì các bạn có thể thêm đoạn code sau vào cuối file upload.php: echo header("refresh: 5; url = http://localhost/index.php"); exit(); Trong đó:
|