Cách upload file lên server bằng 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

<form method="POST" enctype="multipart/form-data">
  <input type="file" name="fileUpload"  id="fileUpload" >
  <input type="submit" name="submit" >
</form>

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
<?php
basename($_FILES['fileUpload']['name']);
?>
  • Lấy đuôi mở rộng file
<?php
pathinfo($_FILES['fileUpload']['name'], PATHINFO_EXTENSION);
?>

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

<?php
$target_dir = "uploads/";
?>

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

<?php
$target_dir = "uploads/";
$target_file = $target_dir.basename($_FILES['fileUpload']['name']);
?>

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)
<?php
$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
<?php
$sizeFile = $_FILES['size'];
if($sizeFile > 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
<?php
if(file_exists($target_file)){
   $error['fileUpload] = "File bạn chọn đã tồn tại 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ố";
        }
    }
}
?>


<div id="content">
    <form id="form_upload" method="POST" enctype="multipart/form-data">
        <input type="file" name="fileUpload"  id="fileUpload" >
        <input type="submit" name="submit" ><br/>
    </form>
    <?php
    if (isset($flag) && $flag == true) {
        ?>
        <img src="<?php echo $target_file; ?>">
        <?php
    }
    ?>
</div>

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

Cách upload file lên server bằng PHP