jQuery插件ajaxFileUpload异步上传文件(2)

if (data) {
        for (var i in data) {
            $('<input type="hidden" value="' + data[i] + '" />').appendTo(form);
        }
    }

var form = jQuery.createUploadForm(id, s.fileElementId,s.data);

ajaxFileUpload为了实现无刷新异步提交文件,构建 iframe 然后创建form表单 再将要上传的文件写上去再提交.但是原代码 却没有处理data.所以这块内容需要我们自己加上去.
下面红色部分为修改ajaxFileUpload.js的三处地方:
备注:好像csdn代码中加颜色加粗  有问题这三处修改的地方我直接贴出来,位置看下面的代码,

createUploadForm: function(id, fileElementId,data); if (data) { for (var i in data) { $('<input type="hidden" value="' + data[i] + '" />').appendTo(form); } } var form = jQuery.createUploadForm(id, s.fileElementId,s.data);

如何使用它呢?

$.ajaxFileUpload({ url: 'http://localhost:8080/HNUST/crawler/ordinary2', type: 'post', data : { url : url, keyword : keyword, rule : rule, data : data, sign:sign }, secureuri: false, //一般设置为false fileElementId: 'file', // 上传文件的id、name属性名 dataType: 'JSON', //返回值类型,一般设置为json、application/json 这里要用大写 不然会取不到返回的数据 success: function(data, status){ alert(data); }, error: function(data, status, e){ alert(e); } });

html:
<input type="file">
java:java后台 获取参数还是正常获取:

String url=request.getParameter("url"); String keyword=request.getParameter("keyword");

获取文件并分行读取(非图片):

MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; MultipartFile multipartFile = multipartRequest.getFile("file"); //这个file要与fileElementId一致 try { InputStream inputStream=multipartFile.getInputStream(); BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream)); String tempString = null; // 一次读入一行,直到读入null为文件结束 while ((tempString = reader.readLine()) != null) { fileList.add(tempString); } } catch (IOException e2) { // TODO Auto-generated catch block e2.printStackTrace(); }

使用过程中有两点需要注意的地方:
其一,dataType必须要大写;
其二,在data的值要写成json的格式,否则后台无法接受参数

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wzdfpj.html