Author Topic: Một mã nguồn File Uploader đơn giản  (Read 658 times)

0 Members and 1 Guest are viewing this topic.

Offline hoian

  • Why?
  • Administrator
  • Our Friends
  • *****
  • Posts: 462
  • Gender: Male
    • Nguoihoian's Community
Một mã nguồn File Uploader đơn giản
« on: October 01, 2011, 09:22:46 AM »
Một mã nguồn File Uploader đơn giản và rất hiệu quả, được viết bằng code PHP và chia sẽ bởi learn2hack tại diễn đàn IPOWER.

Link Download mã nguồn File Uploader: uploader.zip.html

Xem demo tại đây: http://www.nguoihoian.tk/up-img/up.php

Bài giới thiệu về mã nguồn của learn2hack (có chỉnh sửa và bổ sung hình ảnh) như sau:

Hiện giờ có rất nhiều source để upload file. Nổi bật là source của PETER viết và của Upload Script.

L2H cũng thử tự mình viết 1 source như vậy, cũng là để tập dợt kỹ năng code PHP. Source này L2H viết có tham khảo qua source của PETER và Upload Script:

Một vài ưu điểm:

- Gọn nhẹ, dung lượng 7KB.
- Tên file upload được mã hóa theo dạng MD5 hash của chính file đó. Nếu cùng 1 file, đã được upload rồi dù có đổi tên đi nữa thì vẫn nhận diện được, khi đó ko upload lại nữa và chỉ đưa link cho người dùng (kỹ thuật sử dụng MD5 hash này học từ Upload Script).
- Sau khi upload sẽ đưa direct link cho người dùng ở dạng url và bbcode (cái này học theo Sendpics của VNP).
- Kiểm tra tên file và định dạng rõ ràng
- Cho phép upload 1 lúc nhiều file

Một vài điểm chú ý khi sử dụng:



+ Để tùy biến định dạng file, kích cỡ file, nơi lưu, các bạn tìm đến dòng sau ở gần cuối file:

$fileUploader = new FileUploader();

+ Nếu để mặc định thì nó sẽ cho phép các định dạng sau:  jpg, jpeg, gif, png; đồng thời kích thước file mặc định là 500 Kb, thư mục lưu trữ mặc định là images/upload/

+ Để thay đổi, các bạn sửa dòng đó theo mẫu:

$fileUploader = new FileUploader(các định dạng cho phép, dung lượng tính theo Kb, thư mục lưu trữ);

trong đó:

- các định dạng cho phép các bạn phải viết bằng chữ viết thường, các định dạng phân cách nhau bằng dấu phảy. VD: 'zip, rar, doc, exe'
- dung lượng tính bằng Kb, chỉ ghi số. VD: 500
- thư mục lưu trữ thì phải kết thúc bằng dấu / ở cuối. VD: 'files/'. Chú ý là phải tạo thư mục này trước và chmod 777 cho nó nhé.


Tổng hợp lại, các bạn có dòng lệnh mới được ví dụ như sau:

$fileUploader = new FileUploader('zip, rar, doc, exe', 500, 'files/');

Vì L2H chỉ làm source để upload nên không có các chức năng phụ như đếm số người online như PETER làm hoặc liệt kê các file được upload rồi như Upload Scripts.

Để bảo mật, thì chỉ nguyên trong code này sẽ không đủ. Các bạn cố gắng thiết lập chặt chẽ file .htaccess và chmod trên host của mình. Trong code này, L2H đã ứng dụng việc change file name sang MD5 Hash nên người khác sẽ không thể biết được link của file nếu ko có chính file đó, việc này hạn chế họ get cả thư mục của mình.



Chức năng upload cùng lúc nhiều file cũng được tích hợp, các bạn click vào nút Add more files để có thể upload nhiều file như hình ở trên.

Rất mong các bạn góp ý để source được tốt hơn. Cám ơn rất nhiều.

(Theo learn2hack tại diễn đàn IPOWER - có bổ sung + chỉnh sửa)
« Last Edit: March 07, 2012, 10:53:42 AM by hoian »
To be or not to be ...

Diễn đàn Người Hội An - Cộng đồng Người Hội An

Một mã nguồn File Uploader đơn giản
« on: October 01, 2011, 09:22:46 AM »