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:
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ẻ
Thẻ
Thẻ
1
| <httpRuntime maxRequestLength= "2097152" executionTimeout= "9999999" /> |
Đ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
1
| C:\Windows\System32\inetsrv\ |
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.
Comments[ 0 ]
Đăng nhận xét