2013-06-26 44 views
8

Tôi làm việc trên dự án MVC4 VS2012 chứa bộ điều khiển API Web. Dự án này sẽ được xuất bản trên máy chủ IIS.Tải lên tệp (tối đa 10Mb kích thước tệp) với ASP.NET webAPI

Tôi cần cho phép người dùng tải tệp lên. Vấn đề là một API web bị giới hạn tối đa 4MB tải lên kích thước tệp tối đa. Tôi đọc (ví dụ ở đây: http://blogs.msdn.com/b/henrikn/archive/2012/03/01/file-upload-and-asp-net-web-api.aspx) rằng chúng tôi có thể mở rộng giới hạn này bằng cách tự lưu trữ API web (trong trường hợp này, tệp tải lên tối đa 2GB). Tôi không muốn tự lưu trữ webAPI của tôi bởi vì tôi muốn lưu trữ nó trên máy chủ web IIS của tôi vì vậy tôi nghĩ rằng điều này là không thích hợp cho tình hình của tôi, phải không? Vậy tôi có thể làm gì để tải lên các tệp lớn hơn 4MB?

Nếu có thể, tôi tìm kiếm giải pháp HTML5 (với kéo thả).

Cho đến nay, không có giải pháp nào tôi tìm thấy cho phép tôi thực hiện việc này.

Cảm ơn sự giúp đỡ của bạn.

Trả lời

20

Có lẽ nó không rõ ràng nhưng thực sự là địa chỉ blog là đề cập đến IIS. Bạn cần phải tìm kiếm các cài đặt sau 2 trong Web.config để tăng kích thước tải lên:

LƯU Ý (maxRequestLength = "kích thước trong Kbytes"):
<system.web> <httpRuntime targetFramework="4.5" maxQueryStringLength="" maxRequestLength="" maxUrlLength="" />

LƯU Ý (maxAllowedContentLength là theo byte) <system.webServer> <security> <requestFiltering> <requestLimits maxAllowedContentLength="" maxQueryString="" maxUrl=""/>

+0

Cảm ơn bạn rất nhiều về thông tin này. – Bronzato

+1

Xem thêm liên kết này về việc xử lý tải lên rất lớn: http://www.strathweb.com/2012/09/dealing-with-large-files-in-asp-net-web-api/ – Svakinn

1

Nếu bạn đọc kỹ, nó cho biết "ASP.NET có giới hạn tối đa là 2G về kích thước tệp mà bạn có thể tải lên". Vì vậy, về cơ bản khi được lưu trữ trong ASP.NET/IIS, bạn sẽ có thể nhận tệp lên tới 2Gbs. Những gì bạn phải làm là thay đổi một số giá trị mặc định trong web.config.

Kiểm tra này ra: https://stackoverflow.com/a/7154363/2517785

0

Bạn có thể kiểm tra điều này

int MaxContentLength = 1024 * 1024 * 10; //Size = 10 MB 
if (postedFile.ContentLength > MaxContentLength) 
{ 


} 
Các vấn đề liên quan