我正在尝试使用Kendo Ui将.xlsx
文件发送到我的REST API。但我迷路了。
我能够拨打我的服务,但我无法获取该文件。我相信我发错了。
我不需要保存文件。我只需要读取.xlsx
文件即可将数据导入我的数据库。
html(没有表单):
<div>
<input name="files" id="files" type="file" />
<button id="importButton">Import</button>
</div>
JS:
$("#files").kendoUpload({
async: {
autoUpload: true
},
select: onSelect
});
$("#importButton").kendoButton({
click: onImport
});
function onImport() {
var formData = new FormData();
jQuery.each(jQuery('#files')[0].files, function (i, file) {
formData.append('file-' + i, file);
});
$.ajax({
type: "POST",
url: url,
data: formData,
processData: false,
cache: false,
success: function (result) {
alert("Ok");
},
error: function (result) {
alert("Not Ok");
}
});
}
服务器侧
[HttpPost, Route("import")]
public void Import()
{
var streamProvider = new MultipartMemoryStreamProvider();
Request.Content.ReadAsMultipartAsync<MultipartMemoryStreamProvider>(streamProvider).ContinueWith((tsk) =>
{
foreach (HttpContent ctnt in streamProvider.Contents)
{
Stream stream = ctnt.ReadAsStreamAsync().Result;
// do something
}
});
}
答案 0 :(得分:1)
知道了!
$("#files").kendoUpload({
async: {
withCredentials: false,
saveUrl: url,
autoUpload: true
},
select: onSelect
});
这个答案对我有帮助:Cross domain upload
@Brett是对的,实现了kendUpload的方式。 我认为Import
按钮应该具有魔力,但我只需要使用kendoUpload。
谢谢!