我使用带有jsp作为前端的struts 2上传文件,但是我不希望在文件上传后刷新页面,所以我使用的是Ajax但是我无法获取File对象,似乎文件上传需要在jsp中使用form标签,如果我提交表单,则页面会刷新。 我通过网络进行了研究,但是无法得到很多相关结果,如果有人指导我完成这项工作,那将会有很大的帮助。真的很感激任何帮助。 最好的问候
答案 0 :(得分:0)
我建议使用iframe上传文件而不是ajax,
使用struts2和iframe上传Csv文件的示例代码:
var file = $("#fileUpload").val();
if(file.indexOf(".") != -1 && file.substr(file.indexOf("."))==".csv"){
/* created IFrame For UPload file*/
var iframe = $('<iframe name="uploadIPAddressIFrame" id="uploadIPAddressIFrame" style="display: none" />');
$("body").append(iframe);
/* Set Form for submit iframe*/
var form = $('#ipPoolForm');
form.attr("action", "uploadCSVFile.do");
form.attr("target", "uploadIPAddressIFrame");
form.submit();
openDialog(title);
/* handle response of iframe */
$("#uploadIPAddressIFrame").load(function () {
response = $("#uploadIPAddressIFrame")[0].contentWindow.document.body.innerHTML;
$("#chkIPAddressDiv").html(response);
$("iframe#uploadIPAddressIFrame").remove();
});
上传后如果您提交表单,则更改表单的目标:
// Because of using iframe for upload set target value
$("#ipPoolForm").attr("target", "");