Tôi đang tải lên tệp bằng ASP.NET Web API. Tôi đã làm điều này trước RC nhưng vì lý do nào đó tệp được lưu dưới dạng "BodyPart_3ded2bfb-40be-4183-b789-9301f93e90af" thay vì tên tệp. Biến tên tệp dưới đây trả về chuỗi bodypart này thay vì tên tệp. Tôi dường như không thể tìm ra nơi tôi đang đi sai. Bất kỳ trợ giúp được đánh giá cao.Tệp Web API ASP.NET được lưu dưới dạng "BodyPart_3ded2bfb-40be-4183-b789-9301f93e90af"
Khách hàng mã:
function upload() {
$("#divResult").html("Uploading...");
var formData = new FormData($('form')[0]);
$.ajax({
url: 'api/files/uploadfile?folder=' + $('#ddlFolders').val(),
type: 'POST',
success: function (data) {
$("#divResult").html(data);
},
data: formData,
cache: false,
contentType: false,
processData: false
});
};
Bộ điều khiển:
public Task<HttpResponseMessage> UploadFile([FromUri]string folder)
{
if (!Request.Content.IsMimeMultipartContent())
{
throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.UnsupportedMediaType));
}
// Save file
MultipartFormDataStreamProvider provider = new MultipartFormDataStreamProvider(HttpContext.Current.Server.MapPath("~/Files"));
Task<IEnumerable<HttpContent>> task = Request.Content.ReadAsMultipartAsync(provider);
return task.ContinueWith<HttpResponseMessage>(contents =>
{
string filename = provider.BodyPartFileNames.First().Value;
return new HttpResponseMessage()
{
Content = new StringContent(string.Format("File saved in {0}.", folder))
};
}, TaskScheduler.FromCurrentSynchronizationContext());
Các tập tin đang tìm kiếm như:
tôi đã viết lên ví dụ hoàn chỉnh của tôi ở đây: http://rivdiv.wordpress.com/2012/06/13/uploading-a-file-using-asp-net-web-api/ – Rivka