gpt4 book ai didi

c# - 带有 ASP.NET MVC 3 的 Blueimp 多文件 uploader

转载 作者:可可西里 更新时间:2023-11-01 09:08:25 26 4
gpt4 key购买 nike

我正在尝试添加 blueimp File Upload到 MVC 应用程序,我在接收后操作中的文件时遇到问题(我正在使用多文件上传功能)。有人可以帮我解决这个问题吗?

在我看来,我有以下代码:

<form id="file_upload" enctype="multipart/form-data" action="Home/SaveFile" method="post">    
<input type="file" name="file" multiple="true"/>
<button>Upload</button>
<div>Upload files</div>
</form>
<br />
###############################
<table id="files">
</table>

<button id="start_uploads">Start uploads</button>
<button id="cancel_uploads">Cancel uploads</button>

blueimp 文件上传的 JQuery 代码如下:

$(document).ready(function () {

$('#file_upload').fileUploadUI({
uploadTable: $('#files'),
downloadTable: $('#files'),
buildUploadRow: function (files, index) {
return $('<tr><td class="file_upload_preview"><\/td>' +
'<td>' + files[index].name + '<\/td>' +
'<td class="file_upload_progress"><div><\/div><\/td>' +
'<td class="file_upload_start">' +
'<button class="ui-state-default ui-corner-all" title="Start Upload">' +
'<span class="ui-icon ui-icon-circle-arrow-e">Start Upload<\/span>' +
'<\/button><\/td>' +
'<td class="file_upload_cancel">' +
'<button class="ui-state-default ui-corner-all" title="Cancel">' +
'<span class="ui-icon ui-icon-cancel">Cancel<\/span>' +
'<\/button><\/td><\/tr>');
},
buildDownloadRow: function (file) {
return $('<tr><td>' + file.name + '<\/td><\/tr>');
},
beforeSend: function (event, files, index, xhr, handler, callBack) {
handler.uploadRow.find('.file_upload_start button').click(callBack);
}
});
$('#start_uploads').click(function () {
$('.file_upload_start button').click();
});
$('#cancel_uploads').click(function () {
$('.file_upload_cancel button').click();
});
});

在 Controller 内部有以下操作方法:

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult SaveFile(IEnumerable<HttpPostedFileBase> files)
{
foreach (HttpPostedFileBase file in files)
{
//some file upload magic
}
return View("MyView");
}

我正在使用 MVC 3。

在 action 方法中,如果参数是 IEnumerable 类型,它会接收 null,如果参数是 HttpPostedFileBase 类型,它会以一种奇怪的方式接收文件,并且 action 方法无法正常工作。

非常感谢任何形式的帮助,谢谢。

干杯!

最佳答案

将为每个文件调用SaveFile Controller 操作。所以它应该是这样的:

[HttpPost]
public ActionResult SaveFile(HttpPostedFileBase file)
{
//some file upload magic

// return JSON
return Json(new
{
name = "picture.jpg",
type = "image/jpeg",
size = 123456789
});
}

如果你想在同一个请求中处理多个上传文件,你可以看看 respective section of the documentation

关于c# - 带有 ASP.NET MVC 3 的 Blueimp 多文件 uploader ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5063999/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com