Jump to content

  • Log in with Facebook Log in with Twitter Log in with Windows Live Log In with Google      Sign In   
  • Create Account
  • facebook
  • googleplus
  • twitter

Photo
- - - - -

Source upload file đơn giản và hiệu quả


  • Please log in to reply
14 replies to this topic

#1 learn2hack

learn2hack

    Chém Gió

  • Member
  • PipPipPipPipPip
  • 770 posts

Posted 24 July 2007 - 12:10 AM

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:
$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:

$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:
$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

Edited by learn2hack, 15 September 2008 - 11:36 PM.


#2 Baby_khonglo

Baby_khonglo

    Mr Bự

  • History
  • 859 posts

Posted 08 August 2008 - 12:51 PM

Warning: opendir(online/) [function.opendir]: failed to open dir: No such file or directory in /home/barbarb1/public_html/upload/upload.php on line 140


Khi em test thử thì nó lỗi chỗ đó

#3 nguoidanong.xala

nguoidanong.xala

    Junior Member

  • Member
  • Pip
  • 18 posts

Posted 20 August 2008 - 10:33 PM

Bạn phải chmod thư mục online/ về 0777 hoạc kiểm tra lại xem đường dẫn đã đúng chưa :D

#4 name1217

name1217

    Junior Member

  • Member
  • Pip
  • 15 posts

Posted 25 August 2008 - 02:56 AM

Cho em hỏi có code upload nào bằng asp k0

#5 nguoidanong.xala

nguoidanong.xala

    Junior Member

  • Member
  • Pip
  • 18 posts

Posted 25 August 2008 - 03:41 AM

Cho em hỏi có code upload nào bằng asp k0


Có đó bạn :) download ở dưới đó

Attached Files



#6 name1217

name1217

    Junior Member

  • Member
  • Pip
  • 15 posts

Posted 26 August 2008 - 01:03 AM

Cho em hỏi có code upload nào bằng asp k0


Có đó bạn :) download ở dưới đó



Cài dặt như thế nào vậy anh

#7 learn2hack

learn2hack

    Chém Gió

  • Member
  • PipPipPipPipPip
  • 770 posts

Posted 26 August 2008 - 10:22 AM

Hiện giờ mình đã fix 1 vài lỗi nhỏ (thanks ngonlua1990), và update lại link download cho các bạn. Bản mình gửi ở đây là bản cho phép upload nhiều file (như đã giới thiệu trong 1 topic khác), sau thời gian chạy thấy nó khá ổn nên dùng luôn. Ở đây mình cũng viết thêm ít hướng dẫn cho các bạn tiện sửa chữa. Tất cả được edit lại ở bài đầu tiên.

Hy vọng các bạn thích source này. Có gì các bạn thấy cần sửa đổi bổ xung thì hãy nhắn cho mình. Cám ơn nhiều.

Edited by learn2hack, 26 August 2008 - 10:28 AM.


#8 hm3cs

hm3cs

    Advanced Member

  • Member
  • PipPipPip
  • 216 posts

Posted 26 August 2008 - 07:44 PM

Cho em hỏi có code upload nào bằng asp k0


Có đó bạn :) download ở dưới đó



Cài dặt như thế nào vậy anh


ASP chỉ cần upload lên host as là chạy thôi em :> kô biết phải làm gì nữa hem :">

#9 bambino

bambino

    Junior Member

  • Member
  • Pip
  • 2 posts

Posted 05 September 2008 - 08:33 PM

có cách làm làm thêm 1 phần để mình có thể lựa chọn thư mục mà mình muôn sup lên không?chứ k bị bó buộc vào 1 thư mục nữa!

#10 NEO_PTIT

NEO_PTIT

    Junior Member

  • Member
  • Pip
  • 4 posts

Posted 06 September 2008 - 02:48 AM

To learn2hack:
- Nếu em đặt file file_uploader_v1.2.php ở host A http://aaa.com và chạy file này.
- Em muốn lưu trữ file đã được upload sang 1 host B http://bbb.com thì phải sửa như thế nào ?

#11 Baby_khonglo

Baby_khonglo

    Mr Bự

  • History
  • 859 posts

Posted 06 September 2008 - 06:03 AM

To learn2hack:
- Nếu em đặt file file_uploader_v1.2.php ở host A http://aaa.com và chạy file này.
- Em muốn lưu trữ file đã được upload sang 1 host B http://bbb.com thì phải sửa như thế nào ?


_ Đầu tiên host A, bạn làm một html với form như sau

<form enctype="multipart/form-data" target="_self" action="http://gdht.phpnet.u...load/upload.php" method="POST">
<input name="userfile" type="file" /><br />
<input type="checkbox" name="agree\" value="22" /><font size="3">Đồng với qui định của ".$A_sitename." (<a href="agreement.php">Qui định</a>)<br /></font>
<input type="submit" value="Upload File" />";

- Ở host B bạn up file upload.php của anh L2H lên, thay thế đường dẫn file đó trong code (phần in đậm trong form bên host A )

Edited by Baby_khonglo, 06 September 2008 - 06:05 AM.


#12 Mr.Nike1

Mr.Nike1

    Small Princess Thanks !

  • Member
  • PipPipPipPip
  • 315 posts

Posted 29 September 2008 - 12:17 PM

vậy bắt buộc host chứa code phải hỗ trợ PHP & CMOD. Mình có cái host up code chỉ có 300MB nhưng cái host lưu trữ của mình tới 10GB, ko có code nào áp dụng ngc lại đc ha.

#13 noka

noka

    Junior Member

  • Member
  • Pip
  • 24 posts

Posted 29 September 2008 - 03:39 PM

Code này viết bằng PHP mà, phải có PHP là đúng rồi, Chmod chỉ là để bảo mật cho chắc ăn thôi, mà thường chúng đi kèm nhau hết ấy mà.

Còn cái đoạn sau thì bác Vmod này nói gì em chả hiểu :D.

#14 Mr.Nike1

Mr.Nike1

    Small Princess Thanks !

  • Member
  • PipPipPipPip
  • 315 posts

Posted 01 October 2008 - 10:14 AM

èo, code PHP dùng host hỗ trợ PHP thì tất nhiên mình biết. ý mình muốn nói thế này: mình có 1 cái host dung lượng khá lớn và bw thì unlimit dùng để lưu trữ dữ liệu nhưng nó ko hỗ trợ PHP, còn cái host mình làm việc thì hỗ trợ hết, ko có code nào làm cho những file up lên sẽ tự qua host kia :D

Edited by Mr.Nike1, 01 October 2008 - 10:15 AM.


#15 Baby_khonglo

Baby_khonglo

    Mr Bự

  • History
  • 859 posts

Posted 02 October 2008 - 09:43 PM

Nó không hỗ trợ php, vậy thì phải dùng ftp, :D để nghiên cứu cái





Similar Topics Collapse

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users