大家好,
由于 Jersey 错误,我正在尝试创建一个解决方法。 Jersey chop 了文件名中的斜杠。所以我想通过另一种方式发送我的文件。 对于 1 个文件,我找到了一个解决方案,如下:
function extractFilename(s){
// returns string containing everything from the end of the string
// that is not a back/forward slash or an empty string on error
// so one can check if return_value===''
return (typeof s==='string' && (s=s.match(/[^\\\/]+$/)) && s[0]) || '';
}
<input type="file" onchange="alert(extractFilename(this.value));">
但是对于多个文件它不起作用。我尝试通过邮寄方式发送它们: 用户界面:
<input type="file" id="files" name="files" multiple="multiple" />
JS:
function showUploadPanel() {
var files = $("#files")[0].files;
var form = createFormWithInputs("/user/document_upload/", files);
form.appendTo( document.body ).submit();
}
function createFormWithInputs(path, params) {
var form = $(document.createElement( "form" ))
.attr( {"method": "post", "action": path} );
$.each( params, function(key,value){
$.each( value instanceof Array? value : [value],
function(i,val){
$(document.createElement("input"))
.attr({ "type": "hidden", "name": "files", "value":
val })
.appendTo( form );
});
});
return form;
}
Controller :
@POST
@Path("/document_upload")
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
public Response documentUpload(@FormParam("files") List<File> files) {
我可以拥有这些文件,但它们是空的“[目标文件]”。没有任何内容。
我该怎么办?
预先感谢您, 恩德烈
请您参考如下方法:
您可以尝试使用 Jquery 插件 uploadify 来上传多个文件。 http://www.uploadify.com/demos/