Thông thường để upload file lên host của bạn thì bạn cần phải sử dụng các thông tin mật (user, pwd) để truy nhập vào FTP (thông qua trình duyệt web hoặc một chương trình hỗ trợ upload nào đó…) rồi mới có thể upload lên host của bạn, nhưng với bài viết này mình sẽ hướng dẫn bạn cách tạo một trang upload có thể upload mà không cần phải sử dụng các thông tin mật đó!
Để tạo được một trang upload cơ bản bạn cần làm 2 bước sau:
1. Tạo FORM – HTML:
Phần này bạn chỉ cần lưu ý ở thẻ input, thay vì bạn thiết lập type là text (dạng nội dung) hay password (dạng mật khẩu ******) thì bạn phải thiết lập lại là file.
Tạo file upload.php có nội dung sau:
Upload file: <input type=”file” name=”file_upload”>
<input type=”submit” name=”submit” value=” Gửi file “>
</form>
Lần lượt add các thông tin này vào file upload.php nhưng phải add ở trên đoạn HTML đấy nhé :p
Cấu hình:
$folder_upload_in = “./”; // Thư mục mà file sẽ được upload vào, để nguyên nếu muốn upload cùng một thư mục
Lấy thông tin của file:
$file_name = isset($_FILES[‘file_upload’][‘name’]) ? $_FILES[‘file_upload’][‘name’] : “”;
$file_type = isset($_FILES[‘file_upload’][‘type’]) ? $_FILES[‘file_upload’][‘type’] : “”;
$file_size = isset($_FILES[‘file_upload’][‘size’]) ? $_FILES[‘file_upload’][‘size’] : “”;
$file_error = isset($_FILES[‘file_upload’][‘error’]) ? $_FILES[‘file_upload’][‘error’] : “”;
Kiểm tra dung lượng file – tính theo KB:
{
print “Bạn chỉ có thể upload file có dung lượng dưới {$file_max_size} KB.”;
return false;
}
Không cho upload các file có nội dung như: PHP, ASP, …etc:
{
print “File cần upload không hợp lệ!”;
return false;
}
Cuối cùng file sẽ được upload thông qua hàm copy():
print “Bạn đã upload thành công!”;
————————————————————————–
Code hoàn chỉnh:
Để đơn giản ta sẽ tổng hợp những gì đã viết ở trên thành 1 file hoàn chỉnh, bạn tạo file upload.php có nội dung như sau:
if ( $_GET[“act”] == “do” )
{
$file_max_size = 1000; // Tính theo KB
$folder_upload_in = “”; // Thư mục mà file sẽ được upload vào, để nguyên nếu muốn upload cùng một thư mục
$file_tmp = isset($_FILES[‘file_upload’][‘tmp_name’]) ? $_FILES[‘file_upload’][‘tmp_name’] : “”;
$file_name = isset($_FILES[‘file_upload’][‘name’]) ? $_FILES[‘file_upload’][‘name’] : “”;
$file_type = isset($_FILES[‘file_upload’][‘type’]) ? $_FILES[‘file_upload’][‘type’] : “”;
$file_size = isset($_FILES[‘file_upload’][‘size’]) ? $_FILES[‘file_upload’][‘size’] : “”;
$file_error = isset($_FILES[‘file_upload’][‘error’]) ? $_FILES[‘file_upload’][‘error’] : “”;
if ( $file_size > ($file_max_size*1024) )
{
print “Bạn chỉ có thể upload file có dung lượng dưới <b>{$file_max_size} KB</b>.”;
return false;
}
if ( $file_type == “text/plain” )
{
print “File cần upload không hợp lệ!”;
return false;
}
copy ( $file_tmp, “./” . $folder_upload_in . $file_name);
print “Bạn đã upload thành công!<br/>”;
}
print <<<EOF
<form action=”upload.php?act=do” enctype=”multipart/form-data” method=”post”>
Upload file: <input type=”file” name=”file_upload”>
<input type=”submit” name=”submit” value=” Gửi file “>
</form>
EOF;
?>