使用 Web 上传文件 API
File upload using Web API
我正在尝试使用
实现文件上传(excel 个文件)
Visual Studio 2012,
ASP.NET Web Forms,
jquery,
Web API
Browser: IE 8
我尝试按照在线示例进行操作,但他们使用的是 FormData,它对我不起作用。
$('#ImportFileBtn').on('click', function () {
var fileName = $('#ImportFileSelection').val();
var data = "<form method='post' enctype='multipart/form-data'><body><input type='file' id='facilityFile' value='"+fileName +"' /></body></form>"
$.ajax({
type: "POST",
url: "api/Import/ProcessImport",
contentType: false,
processData: false,
data: data,
success: function (messages) {
alert('ok');
},
error: function () {
alert("Error while invoking the Web API");
}
});
});
请建议我如何使用上述工具和技术将 excel 文件上传到 Web API 控制器。
谢谢,
Vim
Web API 用于允许其他应用程序使用其中的数据。你不能在那里上传文件。
问题是 IE8/9 不了解 FormData。有几个 jQuery 插件可以用来解决这个问题。以下是您可以使用的一些库(不是完整列表):
- jQuery Form Plugin
- drogus/jquery-upload-progress
- jQuery File Upload
- ...(更多可以通过Google找到)
这不是一个完美的选择,但插件会让一些事情变得更容易。其中一些需要大量额外的代码。如果你只是需要这个功能,选择一个集成到 jQuery 的 ajax 方法中的(前段时间在项目中这样做过,但不记得我使用的库的名称)。
更新
仅作记录:我使用的库称为 jQuery iFrame-Transport,因为我必须支持非常旧版本的 IE。
我正在尝试使用
实现文件上传(excel 个文件)Visual Studio 2012,
ASP.NET Web Forms,
jquery,
Web API
Browser: IE 8
我尝试按照在线示例进行操作,但他们使用的是 FormData,它对我不起作用。
$('#ImportFileBtn').on('click', function () {
var fileName = $('#ImportFileSelection').val();
var data = "<form method='post' enctype='multipart/form-data'><body><input type='file' id='facilityFile' value='"+fileName +"' /></body></form>"
$.ajax({
type: "POST",
url: "api/Import/ProcessImport",
contentType: false,
processData: false,
data: data,
success: function (messages) {
alert('ok');
},
error: function () {
alert("Error while invoking the Web API");
}
});
});
请建议我如何使用上述工具和技术将 excel 文件上传到 Web API 控制器。
谢谢, Vim
Web API 用于允许其他应用程序使用其中的数据。你不能在那里上传文件。
问题是 IE8/9 不了解 FormData。有几个 jQuery 插件可以用来解决这个问题。以下是您可以使用的一些库(不是完整列表):
- jQuery Form Plugin
- drogus/jquery-upload-progress
- jQuery File Upload
- ...(更多可以通过Google找到)
这不是一个完美的选择,但插件会让一些事情变得更容易。其中一些需要大量额外的代码。如果你只是需要这个功能,选择一个集成到 jQuery 的 ajax 方法中的(前段时间在项目中这样做过,但不记得我使用的库的名称)。
更新
仅作记录:我使用的库称为 jQuery iFrame-Transport,因为我必须支持非常旧版本的 IE。