Hướng dẫn multiple upload file php - nhiều tệp tải lên php

Lập trình PHP: Viết code Upload Multiple File

Hướng dẫn multiple upload file php - nhiều tệp tải lên php

Video này hướng dẫn bạn viết code PHP để upload 01 file lên server.

Bài này cũng rất quan trọng với những bạn dev iOS/Android đang code Back-end để upload file từ app ios/Android.

Download source: http://khoapham.vn/download/uploadFile.zip

Các bạn lưu ý: Trong vd2/xuly.php, chúng ta có hàm Upload_Single_File($name, $folder, $max, $type), đây là hàm upload hoàn chỉnh 01 file, trong đó:

$name: là name của đối tượng file field trong form mà khách hàng nhập liệu

$folder: là đường dẫn folder chứa file upload

$max: dung lượng tối đa của file được phép upload, đơn vị mặc định là M

$type: mảng các dạng extension (dạng file, đuôi file) được phép upload lên server

Bài này quay từ một buổi học tại Khóa học lập trình PHP tại Trung Tâm Đào Tạo Tin Học Khoa Phạm: http://khoapham.vn/lap-trinh-php.html



Các video

  • 1 - Lập trình PHP - Hướng dẫn viết copde Upload File (Single File) Free

  • 2 - Lập trình PHP: BẢO MẬT FORM VỚI TOKEN Free

  • 3 - Lập trình PHP: Viết code Upload Multiple File Free

Thông tin giảng viên

Hướng dẫn multiple upload file php - nhiều tệp tải lên php

Giảng viên

Khoa Phạm

PHP Teacher

Email:

Bình Luận

(Bạn vui lòng đăng nhập để thêm bình luận)

Khóa học tương tự



Các khóa học qua video:
Lập trình C Java C# SQL Server PHP HTML5-CSS3-JavaScript

Trước tiên ta tạo một FORM như sau:


Giải thích FORM:

  • enctype=”multipart/form-data”: dữ liệu được chia ra làm nhiều phần, dùng để upload file.
  • method=”POST”: phương thức gửi dữ liệu là post.
  • Một input có type = "file" và có tên là một mảng file[], lưu ý là phải có thuộc tính multiple để cho phép chọn nhiều file cùng một lúc.
  • Nút lệnh Submit để gửi dữ liệu.

Còn đây là đoạn code của file demo_upload.php:

if (isset($_POST[‘submit’])){
    $name = array();
    $tmp_name = array();
    $error = array();
    $ext = array();
    $size = array();
    foreach ($_FILES[‘file’][‘name’] as $file) {
        $name[] = $file;                            
    }
    foreach ($_FILES[‘file’][‘tmp_name’] as $file){
        $tmp_name[] = $file;
    }
    foreach ($_FILES[‘file’][‘error’] as $file){
        $error[] = $file;
    }
    foreach ($_FILES[‘file’][‘type’] as $file){
        $ext[] = $file;
    }
    foreach ($_FILES[‘file’][‘size’] as $file){
        $size[] = round($file/1024,2);
    } //Phần này lấy giá trị ra từng mảng nhỏ
    echo “Tổng số file được tải lên: “.count($name).”
”;
    echo “

\n\n\n\n\n”;
    for ($i=0;$i        if ($error[$i] > 0){
            echo “Lỗi: ” . $error[$i];
        }elseif ($ext[$i]!=’application/save’) {
             echo “File không được hổ trợ”.$ext[$i];
         }else {
             $temp = preg_split(‘/[\/\\\\]+/’, $name[$i]);
             $filename = $temp[count($temp)-1];
             $upload_dir = “../download/”;
             $upload_file = $upload_dir . $filename;
             if (file_exists($upload_file)) {
                 echo ‘File đã tồn tại’;
             } else {
                 if ( move_uploaded_file($tmp_name[$i], $upload_file) ) {
                     echo “
\n\n”;
                     echo ‘\n”;
                     echo ‘\n”;
                     echo ‘\n”;
                     $date = date(“d-m-Y”);
                     @mysqli_connect(‘stringhost’, ’stringUsername’, ’stringPass’, ’stringDatabase’);
                     @mysqli_query($conn, ”INSERT INTO `tablename` VALUES (null,'{$name[$i]}’,'{$size[$i]}’,’$upload_dir’,’$date’,0)”) or die(“Bi loi them du lieu”.mysqli_error($conn));
                     @mysqli_close($conn);
                 } else echo ‘loi’;
             }
         }//End khoi cau lenh up file va them vao CSDL;
     }//End vong lap for cho tat ca cac file;
    echo ‘
Tên fileLoạiKích thướcThư mục
”.$name[$i].”’.$ext[$i].”’.$size[$i].” kB’.$upload_file.”
’;  
}

Giải thích đoạn mã:

  • Trước tiên ta lấy từng mảng nhỏ trong mảng $_FILES[‘file’] ra thành các mảng nhỏ là $name[], $tmp_name[], $type[], $size[] và $error[].
  • Tiếp theo ta tạo một vòng lặp cho các phần tử của mảng vừa mới tạo, biến chạy $i chạy từ 0 tới count($name)-1;
  • Từ đây ta sẽ viết tiếp lệnh up file và thêm dữ liệu vào CSDL:
    • $temp = preg_split(‘/[\/\\\\]+/’, $name[$i]); $filename = $temp[count($temp)-1]: hai câu lệnh này dùng để lấy tên file;
    • $upload_dir = “../download/”: thư mục upload của mình là ../upload (chỉnh sửa để phù hợp với trường hợp của bạn);
    • move_uploaded_file($tmp_name[$i], $upload_file): dòng lệnh này dùng để up file lên host;
    • và cuối cùng là ghi dữ liệu vào CSDL mySQL với khối lệnh sau: @mysqli_connect(‘stringhost’,’stringUsername’,’stringPass’,’stringDatabase’);@mysqli_query($conn,”INSERT INTO `tablename` VALUES (null,'{$name[$i]}’,'{$size[$i]}’,’$upload_dir’,’$date’,0)”) or die(“Bi loi them du lieu”.mysqli_error($conn));@mysqli_close($conn);
      @mysqli_query($conn,”INSERT INTO `tablename` VALUES (null,'{$name[$i]}’,'{$size[$i]}’,’$upload_dir’,’$date’,0)”) or die(“Bi loi them du lieu”.mysqli_error($conn));
      @mysqli_close($conn);
  • Và để tiện quan sát kết quả ta sẽ cho hiển thị dưới dạng bảng với khối lệnh:

echo “”;

echo “\n”.$name[$i].”\n”;

echo ‘’.$ext[$i].”\n”;

echo ‘’.$size[$i].” kB\n”;

echo ‘’.$upload_file.”\n”;


Các khóa học qua video:
Lập trình C Java C# SQL Server PHP HTML5-CSS3-JavaScript
« Prev: PHP: Phạm vi của biến Prev: PHP: Phạm vi của biến
» Next: PHP: Cách hiển thị dữ liệu có dấu chuẩn Next: PHP: Cách hiển thị dữ liệu có dấu chuẩn

Copied !!!