【发布时间】:2013-02-02 15:25:55
【问题描述】:
我想提议只点击一次上传按钮上传多个文件。我可以使用多部分发送文件吗?如果是,那么如何?
P.S.:我不想使用闪存或一次发送一个文件。
【问题讨论】:
标签: java html file http multipart
我想提议只点击一次上传按钮上传多个文件。我可以使用多部分发送文件吗?如果是,那么如何?
P.S.:我不想使用闪存或一次发送一个文件。
【问题讨论】:
标签: java html file http multipart
在您的 HTML 中,您可以执行以下操作:
<input accept="image/jpeg,image/gif,image/png" type="file" name="upload[]" multiple/>
在您输入的末尾添加multiple 可以满足您的需求。
【讨论】:
希望这会有所帮助...
//JSP File
<html>
<head><title>Upload page</title></head></p> <p><body>
<form action="upload_file" method="post" enctype="multipart/form-data" name="form1" id="form1">
<center>
Specify file: <input name="file" type="file" id="file">
Specify file: <input name="file" type="file" id="file">
Specify file:<input name="file" type="file" id="file">
<input type="submit" name="Submit" value="Submit files"/>
<center>
</form>
</body>
</html>
//Servlet Page
import java.util.List;
import java.util.Iterator;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.*;
boolean isMultipart = ServletFileUpload.isMultipartContent(request);
if (!isMultipart) {
}
else{
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
List items = null;
try {
items = upload.parseRequest(request);
} catch (FileUploadException e) {
e.printStackTrace();
}
Iterator itr = items.iterator();
while (itr.hasNext()) {
FileItem item = (FileItem) itr.next();
if (item.isFormField()) {
} else {
try {
String itemName = item.getName();
File savedFile = new File(config.getServletContext().getRealPath("/")+"uploadedFiles/"+itemName);
item.write(savedFile);
out.println("<tr><td><b>Your file has been saved at the loaction:</b></td></tr><tr><td><b>"+config.getServletContext().getRealPath("/")+"uploadedFiles"+"\\"+itemName+"</td></tr>");
} catch (Exception e) {
e.printStackTrace();
}
}
}
【讨论】:
是的,你可以。试试apache fileupload library,你可以参考stackoverflow上的这个问题:Multiple file upload in Jsp using Apache commons file upload API或this full example。你也可以通过引用this article来使用Spring。
【讨论】: