我无法正常上传多个文件。当我选择x个文件时,它成功完成,但是第一个文件被上传了x次,而其他文件则根本没有被上传。有人能指出我做错了吗?
形成:
#{form @Projects.uploadPictures(project.id), enctype:'multipart/form-data'}
<p>
<label>&{'title'}</label>
<input type="text" name="title"/>
<strong>(&{'addPicture.chooseTitle'})</strong>
</p>
<p>
<label>&{'Pictures'}</label>
<input type="file" multiple name="files" id="files"/>
</p>
<p>
<input type="submit" value="&{'publish'}" />
</p>
#{/form}
处理文件:
public static void uploadPictures(long id, String title, List<Blob> files) {
String error = "";
if(files != null && !title.trim().equals("")) {
Project project = Project.findById(id);
// Save uploaded files
Picture picture;
for(int i = 0; i<files.size(); i++) {
if(files.get(i) != null) {
System.out.println("i: "+i+"\nFiltype: "+files.get(i).type());
if(files.get(i).type().equals("image/jpeg") || files.get(i).type().equals("image/png")) {
picture = new Picture(project, title+"_bilde_"+(i+1), files.get(i));
project.addPicture(picture);
} else {
error += "Fil nummer "+(i+1)+" er av typen "+files.get(i).type()+" og ikke av typen .JPG eller .PNG og ble dermed ikke lagt til. \n";
}
} else {
error = "Ingen filer funnet";
}
}
} else {
error = "Velg en tittel for bildene";
}
if(error.equals("")) {
flash.success("Picture(s) added");
} else {
flash.error(error);
}
addPicture(id);
}
如果有人感兴趣的话,可以像这样工作:
public static void uploadPictures(long id, String title, File fake) {
List<Upload> files = (List<Upload>) request.args.get("__UPLOADS");
if(files != null) {
Project project = Project.findById(id);
Picture picture;
Blob image;
InputStream inStream;
for(Upload file: files) {
if(file != null) {
try {
inStream = new java.io.FileInputStream(file.asFile());
image = new Blob();
image.set(inStream, new MimetypesFileTypeMap().getContentType(file.asFile()));
picture = new Picture(project, file.getFileName(), image);
project.addPicture(picture); // stores the picture
} catch (FileNotFoundException e) {
System.out.println(e.toString());
}
}
}
}
addPicture(id); //renders the image upload view
}
如果可能的话,很高兴获得带有Blob对象数组的可行解决方案,而不必要求request.args.get(“ __ UPLOADS”)。
问题内容: 我想使用单个元素上传多个文件。所以我尝试这个例子。 使用CodeIgniter2.0上传多个文件(数组) 这是我的表格 这是我的控制器 这是我的文件上传方法 但它给每一次。有什么问题 问题答案: 我根据@Denmark 更改上传方法。
问题内容: 我正在尝试使用以下代码:- 我没有得到结果。 问题答案: 您可以使用AutoIT或JAVA代码。下面我将两者都用作您的参考。尝试任何一个 AutoIt中的代码是 希望这给你一个主意
问题内容: 我遇到了这个简单的js ajax上传代码(由于某种原因,jquery 似乎不适用于HTML5), 但是我这里有两个问题, 这条线在物体之后是什么意思? 为什么在那里需要ID?我能做些什么使用jQuery 用? 此ajax仅用于单个文件上传,如何更改多个文件上传? 问题答案: 这行在对象FormData之后是什么意思? 在得到由它的ID元件。该抓住从元件中的第一选择的文件。将其追加到与字
问题内容: 我的测试需要在不同的浏览器中上传测试文件(我使用+ )。对于单个文件上传,一切正常。我只是发送路径 Firefox:我找不到正确的语法。 任何想法? 所有浏览器都有通用的语法吗? 问题答案: 据我所知,硒 仍然 不支持多个文件上传(请参阅google code上的问题 )。 至少有一种解决方法:显然创建一个包含所需输入字段的表单。这不是最佳的解决方案,因为它(可能)需要更改您的代码才能
问题内容: 我遇到的情况是,我有一个表格,其中有一行,其中有两个文本字段条目,我必须上载该行的文件,并且这种行可以是“ N”,然后是可以在整个表单中输入的主文件,而这些文件是表单的一部分,我必须在单击保存按钮后立即提交所有这些文件。 我有点被ng-upload困扰,它需要一个api调用,而对于这种形式,我真的不能超过一个api调用。示例html代码如下: 问题答案: 这是文件值绑定指令示例.. h
上面是代码 现在的问题是 上传多个文件的时候回调用多次接口,比如上传三个文件就回调用三次axios请求 现在需要解决的是 上传多个文件只执行一次axios请求