Share Code Web - Chia sẻ niềm đam mê bất tận > Lập trình > ASP/ASP.Net > Làm thế nào để upload một file có dung lượng lớn trong Asp.net
Làm thế nào để upload một file có dung lượng lớn trong Asp.net
Nguyễn Trung Hiếu
Share Code Web Company 2013

Làm thế nào để upload một file có dung lượng lớn trong Asp.net

Thông thường, khi lập trình web bằng asp.net, để upload một file ta sử dụng control FileUpload của .Net, nhưng đó chỉ là những file có dung lượng nhỏ. Với file có dung lượng lớn thì sao? Liệu vẫn có thể sử dụng control này hay không? Câu trả lời là không. Vậy thì làm thế nào để upload một file có dung lượng lớn trong Asp.net? Tất cả sẽ có trong bài viết ngày hôm nay.

Control FileUpload chỉ cho phép upload ở chế độ mặc định có dung lượng là 4MB. Để cho phép user có thể upload file với dung lượng cao hơn, chúng ta phải thay đổi thẻ trong web.config.
Thẻ có thuộc tính “maxRequestLength” có giá trị dữ liệu là “KiloBytes”. Mặc dù chúng ta có thể thay đổi giá trị executionTimeout để gia tăng thời gian upload, nhưng như thế cũng không thể giúp chúng ta upload một file lớn được.
Thẻ nhìn sẽ như sau:

Điều này sẽ cho phép chúng ta upload một file có dung lượng lên tới 2GB. Tiếp theo chúng ta thay đổi file Metabase.xml trong ISS với đường dẫn sau

Nhưng file này chỉ cho phép ở chế độ đọc, cho nên nếu muốn thay đổi nội dung của nó thì ta làm như sau:

  • Mở IIS manager (Open Run -> đánh ‘inetmgr’ -> Nhấn Enter)
  • Chuột phải vào tên Computer. Click Properties
  • Check vào nút “Enable Direct Metabase Edit”
  • Click Apple, sau đó nhấn OK

Việc làm này chỉ hoạt động ở IIS 6.0, với các phiên bản cao hơn thì Microsoft đã remove nó mất rồi. Vậy sau khi kích hoạt chế độ chỉnh sửa cho file Metabase.xml thì chúng ta sẽ tiến hành chỉnh sửa nó. Nhưng để an toàn, trước hết bạn nên backup nó ra một bản khác để dự phòng. OK, thuộc tính chúng ta cần thay đổi giá trị đó là:

  • AspBufferingLimit
  • AspMaxRequestEntityAllowed

Sau khi hoàn thành, chúng ta sẽ thấy các thông tin sau trong file web.config

  • maxBufferSize
  • maxReceiveMessageSize
  • maxBufferPoolSize
  • maxDepth
  • maxStringContentLength
  • maxArrayLength

Vậy là xong, chúc bạn thành công!

Related Posts

Tác giả: Nguyễn Trung Hiếu

Một blogger ... cùi bắp! Đơn giản: tôi muốn ghi lại những gì xảy ra xung quanh, cả công việc lẫn cuộc sống và chia sẻ với các bạn đọc. Nếu bạn cảm thấy bài viết có nhiều điểm không chính xác, hãy comment và chia sẻ để tôi còn được học hỏi từ những góp ý của bạn. Email: hieunt.dcn@gmail.com

http://sharecodeweb.net/?s={search_term_string}