Author Topic: Upload dữ liệu  (Read 5810 times)

jupitervn

  • PHP Starter
  • *
  • Posts: 8
    • View Profile
Upload dữ liệu
« on: October 13, 2007, 05:18:33 PM »
Đây là vấn đề không phải là mới trong PHP... Nhưng có điều này muốn hỏi anh em:
Ai cũng biết host yousendit.com cho upload dữ liệu lớn và ổn định. Và trang này được thiết kế bằng PHP ..
Trong khi upload mình thấy "nó" hiện dung lượng đã upload lên host được và tốc độ đường truyền ....
Vậy làm điều này thế nào ??
Ai có code PHP thì càng tốt !!!
Thanks...

jupitervn

  • PHP Starter
  • *
  • Posts: 8
    • View Profile
Re: Upload dữ liệu
« Reply #1 on: October 14, 2007, 01:00:08 PM »
Anh Admin ơi !!! Vào giúp em đi !!!!  ???

cmxq

  • Administrator
  • PHP Intermediate
  • *****
  • Posts: 1339
    • View Profile
    • Email
Re: Upload dữ liệu
« Reply #2 on: October 14, 2007, 03:41:45 PM »
theo tớ được biết thì nó chuyển từng mẩu dữ liệu lên máy chủ rồi ghép lại với nhau. Mỗi khi lấy được một mẩu dữ liệu nào đó thì nó sẽ tiến hành trả lời về trình duyệt về mức độ tiến trình mà "nó" đã xử lý ;D
Hãy bấm LIKE nếu bạn thích bài viết này

doangia

  • Administrator
  • PHP Intermediate
  • *****
  • Posts: 1099
  • Hữu Tâm Ắt Thành Tựu
    • View Profile
    • Doan Gia
    • Email
Re: Upload dữ liệu
« Reply #3 on: October 16, 2007, 02:21:58 PM »
Xem cái này
http://www.telio.be/blog/2006/01/06/ajax-upload-progress-monitor-for-commons-fileupload-example/
Cái này giang hồ gọi là ajax upload (nhưng nhiều người bảo là ajax ko upload được , chỉ đóng vai trò monitor).

Idea :
When an enctype="multipart/form-data" is submitted, PHP have to wait the end of upload process.
But what really happen to the server ?
An incremental copy of the file is created while the upload process is waiting for the end, and this file will be the key for this application.
Another php file, during upload, should read the size of this file then should tell us its filesize!.
Sure, that php page that is uploading cannot tell us anything, but another page should!
Then with a JavaScript function and LoadVars object it's really simple call the other page.
---
Tạm dịch kiểu chuối của tớ:
Khi 1 form enctype="multipart/form-data" được submit, php phải đợi cho đến khi kết thúc tiến trình upload( PHP chỉ "chạm " được vào file khi nó đã nằm trên server , khi nó nằm dưới client thì chỉ có javascript bà HTML "chạm" được vào nó thôi , server-side script mà)
Nhưng cái gì thực sự diễn ra trên server trong suốt quá trình này:
1 bản sao tăng dần của file ra trong khi quá trình kết thúc chờ đến khi kết thúc, và chính file này ( cái bản sao tăng dần) chính là chìa khóa của vấn đề.
1 file php khác sẽ "canh me " kích thước của file này và báo cáo cho chúng ta .
Chắc chắn 1 điều là file php thực hiện việc upload sẽ ko thể báo cáo được gì cả ( vì nó phải chờ upload hoàn tất mới xử lý) , mà file PHP khác sẽ báo cáo việc này.
Vì thế ta cần javascript ( ajax ) gọi cái file "quan trắc" ấy báo cáo và show ra % upload.
---

Nói thêm 1 điều về quá trình upload theo tớ hiểu:
Khi bạn nhấn vào submit , file bạn chọn upload sẽ được chuyển từ client lên server và được chứa tại thư mục temp (tùy theo cấu hình của server mà tên folder có thể khác) , khi nó chuyển lên hoàn tất rồi script php mới di dời nó từ temp sang nơi ta chỉ định . Vì thế để thể hiện % upload ta phải dùng 1 file php khác kiểm tra size của cái file tạm đó , và quá trình này được thực hiện liên tục ( 2 lần 1 s ) thông qua "đốc công" là ajax.
Tớ nói thế ko biết có ai hiểu gì ko nhỉ ;D
Cần Thơ Gạo Trắng Nước Trong
Đến Chơi Mang Dép Chân Không Đi Về ...