Chào bạn, nếu bạn là thành viên xin đăng nhập (Quên mật khẩu?) nếu chưa bạn có thể đăng ký tài khoản mới.
Thông báo: Thành viên muốn đăng nhập ở trang chủ, vui lòng vào Diễn đàn đăng nhập, sau đó quay lại trang chủ.


Bài viết mới nhất

Tìm kiếm [Nâng cao]

Tạo trang upload file cơ bản

Người gửi: lyhuuloi

15/10/2005, 07:57 pm
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 typetext (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:

<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&#7917;i file ">
</form>


2. Xử lý thông tin và upload file - PHP


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:

$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


Lấy thông tin của file:

$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'] : "";


Kiểm tra dung lượng file - tính theo KB:

if ( $file_size > ($file_max_size*1024) )
{
print "B&#7841;n ch&#7881; c&#243; th&#7875; upload file c&#243; dung l&#432;&#7907;ng d&#432;&#7899;i <b>{$file_max_size} KB</b>.";
return false;
}


Không cho upload các file có nội dung như: PHP, ASP, ...etc:

if ( $file_type == "text/plain" )
{
print "File c&#7847;n upload kh&#244;ng h&#7907;p l&#7879;!";
return false;
}


Cuối cùng file sẽ được upload thông qua hàm copy():

copy ( $file_tmp, "./" . $folder_upload_in . $file_name);

print "B&#7841;n &#273;&#227; upload th&#224;nh c&#244;ng!<br/>";


--------------------------------------------------------------------------

Code hoàn chỉnh:

Để đơn giản LHL 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:

<?php

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&#7841;n ch&#7881; c&#243; th&#7875; upload file c&#243; dung l&#432;&#7907;ng d&#432;&#7899;i <b>{$file_max_size} KB</b>.";
return false;
}

if ( $file_type == "text/plain" )
{
print "File c&#7847;n upload kh&#244;ng h&#7907;p l&#7879;!";
return false;
}

copy ( $file_tmp, "./" . $folder_upload_in . $file_name);

print "B&#7841;n &#273;&#227; upload th&#224;nh c&#244;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&#7917;i file ">
</form>
EOF;

?>


Chúc bạn thành công!

(lyhuuloi - Bản quyền sanchoituoitre.vn)

Bài phản hồi
hanhtinhxanh 07/06/2008, 11:16 pm
Bài viết hay thanks nhiều.

 Thống kê chung
Đang trực tuyến
101 khách, 4 thành viên.
Thông số
Tổng số bài viết đã đăng: 57,953
Tổng số thành viên: 109155
Thành viên mới nhất: Anh Tú
Kỷ lục số người trực tuyến: 521   [ 09/04/2008, 02:18 am ]
[Thời gian tải trang này là 0.348 giây] - [26 truy vấn] - [GZIP bật]