thiet ke web,thiet ke giao dien,thiet ke phan mem,seo len google

logo

ITO PRINT OFFICE

Sửa chửa máy in
Nạp mực máy in
Cài đặt máy in
Linh kiện máy in
Nạp mực máy photo
Sủa máy in tận nhà
Vệ sinh máy in

Trang

quang cao
Sự kiện tiêu biểu

Upload File Lên Server

(Blogtamsu) - TẠO FORM ĐỂ UPLOAD FILE Form để upload file cần thoã mãn các điều kiện sau: * method là POST * enctype là multipart/form-data Mã HT....

Công Nghệ Webblog - Chuyên nhận rip, thiết kế, cung cấp: Template blogspot, template blogger chuẩn SEO, Tối ưu website, tích hợp tin tức, giỏ hàng cho blogger bán hàng...

TẠO FORM ĐỂ UPLOAD FILE

Form để upload file cần thoã mãn các điều kiện sau:

* method là POST
* enctype là multipart/form-data

Mã HTML của form sẽ từa tựa như sau:







Đoạn code trên sẽ tạo 1 form với 1 nút Browse... để ban chọn file cần upload, và 1 nút Upload để bạn submit form. Form sẽ được submit tới file process_upload.php nằm cùng thư mục với file chứa form.

Một số browser support MAX_FILE_SIZE sẽ kiểm tra dung lượng file trước khi form được submit, tuy nhiên không phải browser nào cũng vậy. Cho nên bạn đừng nên tin tưởng tuyệt đối vào server! Ở ví dụ trên, nếu browser hỗ trợ, nhưng file có dung lượng lớn hơn 30000 byte sẽ được browser thông báo lỗi khi submit form.

XỬ LÝ DỮ LIỆU ĐƯỢC SUBMIT LÊN SERVER

Bây giờ ta hãy xem xét tới phần xử lý dữ liệu được submit lên server trong file process_upload.php. PHP lưu thông tin về file được upload lên server trong biến global $_FILES. Với form ở ví dụ trên, PHP sẽ truyền cho script process_upload.php các thông tin sau:

* $_FILES['file_upload']['name']: tên file gốc trên máy client. Tuỳ vào browser, tên file có thể được truyền lên server ở dạng C:\folder\filename.ext hoặc chỉ là filename.ext. Chương trình phải tự kiểm tra và trích ra tên file nếu cần thiết.
* $_FILES['file_upload']['type']: kiểu của file, được lưu ở dạng MINE (Ví dụ: image/gif, audio/wav).
* $_FILES['file_upload']['size']: dung lượng của file tính theo byte.
* $_FILES['file_upload']['tmp_name']: sau khi upload, server sẽ lưu file vào một file tạm trên server, biến này cho ta biết đường dẫn và tên của file tạm đó. Chương trình sẽ đọc file tạm này để lấy nội dung của file được upload.
* $_FILES['file_upload']['error']: mã lỗi, chương trình nên kiểm tra biến này để bảo đảm rằng quá trình upload không xảy ra lỗi.
o UPLOAD_ERR_OK ( = 0 ): không có lỗi, quá trình upload thành công.
o UPLOAD_ERR_INI_SIZE ( = 1 ): dung lượng file upload vượt quá giới hạn được chỉ định trong file php.ini.
o UPLOAD_ERR_FORM_SIZE ( = 2 ): dung lượng file upload vượt quá giới hạn được chỉnh định bởi MAX_FILE_SIZE.
o UPLOAD_ERR_PARTIAL ( = 3 ): file chỉ được upload 1 phần (có thể là do lỗi đường truyền trong quá trình upload).
o UPLOAD_ERR_NO_FILE ( = 4 ): không có file nào được upload (có thể là file ở client không tồn tại).

Khi đã có toàn bộ các thông tin cần thiết, xử lý file như thế nào là quyến định của bạn. Bạn có thể đọc nội dung của file và lưu vào database, hoặc di chuyển file và lưu vào thư mục upload của bạn. Sau đây là 1 ví dụ của file process_upload.php.

Đầu tiên, kiểm tra xem tác vụ có phải là upload hay không:

if ( $_SERVER["REQUEST_METHOD"] != "POST" ) {
//thông báo lỗi không phải là method POST
//và thoát
exit(-1);
} //end if


Tiếp theo kiểm tra xem quá trình upload có lỗi gì không:

if ( !isset($_FILES["file_upload"]["error"] ||
$_FILES["file_upload"]["error"] != 0 ) {
//thông báo lỗi dựa vào giá trị của $_FILES["file_upload"]["error"]
//và thoát
exit(-1);
} //end if

//ta cũng có thể kiểm tra xem dung lượng file có vượt quá giới hạn
//của chương trình hay không
if ( $_FILES["file_upload"]["size"] > $MAX_FILE_SIZE ) {
//thông báo lỗi
//và thoát
exit(-1);
}

Tách tên file từ client:

$temp = preg_split('/[\/\\\\]+/', $_FILES["file_upload"]["name"]);
$filename = $temp[count($temp)-1];

//ta cũng có thể kiểm tra phần mở rộng của file nếu cần thiết
if ( !preg_match('/\.(gif|jpg)$/i', $filename ) {
//thông báo lỗi file upload không phải là dạng GIF hoặc JPG
//và thoát
exit(-1);
} //end if


Và cuối cùng, lưu file được upload vào nơi cần thiết:

$upload_dir = "/home/nbthanh/public_html/uploads/";
$upload_file = $uploaddir . $filename;
if ( move_uploaded_file($_FILES["file_upload"]["tmp_name"], $upload_file) ) {
//file đã được upload và copy sang thư mục lưu trữ thành công
} else {
//có lỗi xảy ra
} //end if


CÁC HÀM PHP ĐƯỢC DÙNG TRONG VÍ DỤ

* exit: dừng/thoát chương trình ngay lập tức.
* isset: kiểm tra xem biến có tồn tại hay không. Trong ví dụ của bài viết, ta dùng hàm isset để kiểm tra xem biến $_FILES["file_upload"]["error"] có tồn tại hay không.
* preg_split: tách một chuỗi thành từng phần nhỏ theo regular expression. Trong ví dụ của bài viết, ta dùng hàm này để tách tên file cùng đường dẫn ra thành từng phần nhỏ (phân cách nhau bằng ký tự \ hoặc /, ta không biết chắc được client là Windows hay Linux nên ta tách theo trường hợp tổng quát). Sau khi tách, phần tử cuối cùng sẽ là tên file.
Một cách khác để lấy tên file là dùng hàm basename. Tuy nhiên sử dụng hàm này sẽ có một số vấn đề nảy sinh, bạn tham khảo thêm ở đây: http://www.php.net/manual/en/function.basename.php
.
* count: đếm số lượng phần tử trong mảng. $a[count($a)-1] sẽ truy cập tới phần tử cuối cùng của mảng $a.
* preg_match: sử dụng regular expression để tìm xem chuỗi con có xuất hiện trong chuỗi mẹ hay không. Trong ví dụ của bài viết, ta dùng hàm này để kiểm tra xem tên của của có được kết thúc bằng .gif hoặc .jpg hay không.
* move_uploaded_file: di chuyển file được upload từ client đến 1 thư mục khác trên server.

TÀI LIỆU THAM KHẢO
* PHP Manual:
http://www.php.net/manual/en/index.php

o Regular Expression Functions (Perl-Compatible):
http://www.php.net/manual/en/ref.pcre.php
o Handling file uploads:
http://www.php.net/manual/en/features.file-upload.php
* Từ Google: từ khoá php tutorial upload file

Source from
DDTH

Contact us

Admin

Tìm kiếm bài viết

Maytinhrpro Share

MAYTINHPRO.COM

Máy tính văn phòng
Máy tính doanh nghiệp
Máy in văn phòng
máy in cá nhân
Máy chiếu văn phòng
máy fax cty
Máy tính bàn

MAYTINHPRO.COM

dịch vụ máy tính
sửa chữa máy in
vệ sinh máy tính
bảo trì máy máy
cài đặt windows
dịch vụ sửa chữa máy in
dịch vụ cài đặt máy in

Kết Nối Maytinhpro

Hotline: 0972 893 393 - 0908 113 095
Skype: vkmaytinhpro@gmail.comFacebook: https://www.facebook.com/dichvusuachua
Website: www.maytinhpro.com
OFICE: 185 Đường Hoàng Sa - P.Đakao - Quận 1 - TP.HCM
CPO: 184/15 LH80, P.Hiệp Thành. Quận 12.HCM
Len dau trang

HÌNH ẢNH THI CÔNG

Tag: dịch vụ sơn nước , dịch vụ sơn nhà, sơn nhà giá rẻ, sơn nhà đẹp, sơn nhà hồ chí minh, sơn sửa nhà phố, sơn nước uy tin, sơn nước tận nhà, sơn nước tại nhà, sơn nước chất lượng, sơn nhà đẹp, sơn nhà trọn gói, sơn giả đá, sơn giả gỗ,sơn nhà sài gòn, sơn nhà siêu đẹp

DỊCH VỤ SƠN NHÀ TẬN NƠI

  • Bốn Tư

    Hotline - Mr Bốn

    Call: 097 777 0017

    hotrokythuat@gmail.com

    skype

Tư Vấn Dịch vụ - Mr.Tư

Call: 097 777 0017

hotrokythuat@gmail.com

skype Mr Bốn

Xem thêm>>

Xem thêm>>

Đóng liên hệ [x]
hotline0916 72 69 59