Hiện giờ có rất nhiều source để upload file, các bạn có thể tìm trong diễn đàn mình cũng nhiều. Nổi bật là source của PT 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 PT và Upload Script:
Một vài ưu điểm:
- Chỉ gồm 1 file duy nhất, 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:
- Các hướng dẫn về việc tùy biến định dạng file, kích thước, nơi lưu trữ mình ghi ngay đầu file (bằng tiếng Anh), các bạn nhớ đọc kĩ. Ở đây mình nói rõ lại để các bạn tiện sửa code:
+ Để tùy biến định dạng file, kích cỡ, nơi lưu, các bạn tìm đến dòng sau ở gần cuối file:
CODE
$fileUploader = new FileUploader();
+ Nếu để mặc định thì nó sẽ cho phép các định dạng sau: jpg, jpeg, gif, png, zip, rar; đồng thời kích thước file mặc định là 3 MB, thư mục lưu trữ mặc định là upload/
+ Để thay đổi, các bạn sửa dòng đó theo mẫu:
CODE
$fileUploader = new FileUploader(các định dạng cho phép, dung lượng tính theo MB, thư mục);
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 MB,
chỉ ghi số. VD: 3
- 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 như sau:
CODE
$fileUploader = new FileUploader('zip, rar, doc, exe', 3, '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ư PT 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.
Rất mong các bạn góp ý để source được tốt hơn. Cám ơn rất nhiều.
Đã sửa 1 vài lỗi nhỏ và update lại link download. Các bạn hãy download tại link sau: (mình sửa lại chỉ để 1 link download để tiện cập nhật version mới hoặc fix các lỗi nếu có, khi download các bạn ko cần phải sửa lại link mà luôn được đảm bảo bản mới nhất):
Download File Uploader Here
This post has been edited by learn2hack: Sep 15 2008, 11:36 PM