问:struts后台无法获取文件对象和文件名称?
答:1. 到dropzone.js搜索"return xhr.send(formData);"
2. 在它前面有个这么句代码:
for (i = _m = 0, _ref5 = files.length - 1; 0 <= _ref5 ? _m <= _ref5 : _m >= _ref5; i = 0 <= _ref5 ? ++_m : --_m) { formData.append(this._getParamName(i), files[i], files[i].name); }
3. 找到这句代码,然后更改formData.append(...),我改成如下:
for (i = _m = 0, _ref5 = files.length - 1; 0 <= _ref5 ? _m <= _ref5 : _m >= _ref5; i = 0 <= _ref5 ? ++_m : --_m) { formData.append("files", files[i], files[i].name); formData.append("fileNames", files[i].name); }
4. 然后在java中定义全局files,fileNames提供get、set方法即可获取文件对象和名称了,如下:
private File[] files; //上传的文件 private String[] fileNames; //文件名称 public File[] getFiles() { return files; } public void setFiles(File[] files) { this.files = files; } public String[] getFileNames() { return fileNames; } public void setFileNames(String[] fileNames) { this.fileNames = fileNames; }
5. ok,你可以在你的方法里面测试看是否已经获取到对象了呢?
注:其它的有关上传文件所需要的配置信息和struts普通上传一样配置即可!
dropzone开发相关参考: