Hướng dẫn dùng upload server trong PHP

Đây là chức năng giúp chúng ta có thể gửi file lên server đó là file ảnh hoặc các loại tập tin.

Cấu hình: Tìm vào file php.ini bật trạng thái upload file

file_uploads = On

FORM HTML UPLOAD FILE

   

Chú ý:

  • Chỉ hỗ trợ form có phương thức truyền dữ liệu POST
  • Khai báo thuộc tính enctype="multipart/form-data" cho From

XỬ LÝ UPLOAD FORM

  • Dữ liệu file upload được đẩy vào mảng hệ thống $_FILES
  • Kiểm tra dữ liệu hợp lệ của file upload: Loại file, dung lượng,...

Hàm hỗ trợ

  • Lấy tên file
  • Lấy đuôi mở rộng file

Bước 1: Tạo đường dẫn chứa file upload

Ta có đường dẫn file sau khi upload

Bước 2: Kiểm tra file trước khi upload

  • Kiểm tra đuổi mở rộng(upload ảnh có đuổi png, jpg, jpeg, gif)
  • Kiểm tra kích thước file
 5242880){
   $error['fileUpload] = "File bạn upload không được quá 5MB";
}
?>
  • Kiểm tra sự tồn tại của file trên hệ thống

Bước 3: Chuyển file từ thư mục tạm lên server

if (empty($error)) {
	if (move_uploaded_file($_FILES["fileUpload"]["tmp_name"], $target_file)) {
		echo "Bạn đã upload file thành công";
		$flag = true;
	} else {
		echo "File bạn vừa upload gặp sự cố";
	}
}

CODE UPLOAD FILE ĐẦY ĐỦ

if ($_SERVER['REQUEST_METHOD'] == "POST") {
    //Bước 1: Tạo thư mục lưu file
    $error = array();
    $target_dir = "uploads/";
    $target_file = $target_dir . basename($_FILES['fileUpload']['name']);
    // Kiểm tra kiểu file hợp lệ
    $type_file = pathinfo($_FILES['fileUpload']['name'], PATHINFO_EXTENSION);
    $type_fileAllow = array('png', 'jpg', 'jpeg', 'gif');
    if (!in_array(strtolower($type_file), $type_fileAllow)) {
        $error['fileUpload'] = "File bạn vừa chọn hệ thống không hỗ trợ, bạn vui lòng chọn hình ảnh";
    }
    //Kiểm tra kích thước file
    $size_file = $_FILES['fileUpload']['size'];
    if ($size_file > 5242880) {
        $error['fileUpload'] = "File bạn chọn không được quá 5MB";
    }
// Kiểm tra file đã tồn tại trê hệ thống
    if (file_exists($target_file)) {
        $error['fileUpload'] = "File bạn chọn đã tồn tại trên hệ thống";
    }
//
    if (empty($error)) {
        if (move_uploaded_file($_FILES["fileUpload"]["tmp_name"], $target_file)) {
            echo "Bạn đã upload file thành công";
            $flag = true;
        } else {
            echo "File bạn vừa upload gặp sự cố";
        }
    }
}
?>



GHI NHỚ

  • Upload file giúp chuyển một file từ máy tính lên server
  • Quá trình upload file được tiến hành qua 3 bước
  • Trước khi upload file cần kiểm tra file thích hợp với mục đích sử dụng

Url Link

http://hocweb123.com/cach-upload-file-len-server-bang-php.html

1) Upload lên Server bằng code PHP

Để 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".

Khi bạn 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à:

  1. name: Tên của file bạn upload
  2. type: Kiểu file mà bạn upload (hình ảnh, word, …)
  3. tmp_name: Đường dẫn đến file upload ở client
  4. error: Trạng thái của file bạn upload, 0 => không có lỗi
  5. size: Kích thước của file bạn upload

Bây giờ ta sẽ làm một ví dụ upload file để bạn dễ hiểu hơn nhé.

Bước 1: Bạn tạo file upload.php trong thư mục htdocs của Xampp Server, sau đó copy nội dung này vào



    
        
        
    
    
        

Bước 2: Bạn tạo một folder upload cùng cấp với file upload.php, sau đó sửa lại file upload.php như sau:



    
        
        
    

    
0 if ($_FILES['avatar']['error'] > 0) { echo 'File Upload Bị Lỗi'; } else{ // Upload file move_uploaded_file($_FILES['avatar']['tmp_name'], './folder/'.$_FILES['avatar']['name']); echo 'File Uploaded'; } } else{ echo 'Bạn chưa chọn file upload'; } } ?>

Riêng hàm move_uploaded_file($client_path, $server_path) sẽ có 2 tham số truyền vào, tham số $client_path là đường dẫn đến file ở client, tham số $server_path là đường dẫn các bạn muốn lưu trên Server (đường dẫn có kèm theo tên file)