我试图用kendo ui上传一个excel文件到我的服务器上,但什么都没有发生。问题是在js的var upload上,因为#kupload是null,我不知道为什么。
<div class="form-group">
<label for="kUpload">Select File for Upload </label>
<input type="file" id="kUpload"/>
</div>
上传
$(document).ready(function ()
{ $("#btn-kUpload").on("click", function (e) {
e.preventDefault();
var formData = new FormData();
var upload = $("#kUpload").getKendoUpload();
var files = upload.getFiles();
formData.append('files', files[0].rawFile);
// Send the request
$.ajax({
url: 'test.aspx/ImportExcel',
type: 'POST',
data: formData,
cache: false,
contentType: false,
processData: false,
success: function (response) {
console.log(response);
}
});
});
如果你使用的是kendo组件,就不需要使用ajax,kendo upload内置了ajax请求,可以将文件发送到服务器上。
注意:如果你使用kendo组件,你不需要使用ajax,kendo upload有内置的ajax请求来发送文件到服务器。: 一般来说,每个与服务器端通信的kendo组件都有自己的ajax功能,所以你不需要使用$.ajax。
你只需要定义saveUrl。
<input name="files" id="files" type="file" aria-label="files"/>
$('#files').kendoUpload({
async: {
saveUrl: 'test.aspx/ImportExcel'
},
dropZone: '.drop-zone',
multiple: true,
clear: function () {
},
complete: function(){
//This is called when all files are uploaded
},
success: function() {
//This is called for every uploaded file
},
error: function () {
},
localization: {
select: 'Upload file...'
}
});
Offical example: 上传组件
查看文档。剑道UI上传