Java 如何使用Apache Commmons上传word、excel、jpg和zip文件?
我正在使用apachecommons使用Java 如何使用Apache Commmons上传word、excel、jpg和zip文件?,java,file-upload,apache-commons,Java,File Upload,Apache Commons,我正在使用apachecommons使用storeFile()方法将本地文件上载到FTP。它只适用于.txt文件,但不适用于任何其他文件,如MS word、excel、图像、zip文件等。该文件正在上载,但该文件中没有内容 代码 有人能在这方面帮助我吗?您好,要做到这一点,您应该在下面给出的表单页面中有enctype=“multipart/form data 上载表单HTML: <html> <head><title>Upload page</title
storeFile()
方法将本地文件上载到FTP。它只适用于.txt文件,但不适用于任何其他文件,如MS word、excel、图像、zip文件等。该文件正在上载,但该文件中没有内容
代码
有人能在这方面帮助我吗?您好,要做到这一点,您应该在下面给出的表单页面中有enctype=“multipart/form data 上载表单HTML:
<html>
<head><title>Upload page</title></head></p> <p><body>
<form action="./index.jsp" method="post" enctype="multipart/form-data" name="form1" id="form1">
<center>
<table border="2">
<tr>
<td align="center"><b>Multipale file Uploade</td>
</tr>
<tr>
<td>
Specify file: <input name="file" type="file" id="file">
<td>
</tr>
<tr>
<td>
Specify file:<input name="file" type="file" id="file">
</td>
</tr>
<tr>
<td align="center">
<input type="submit" name="Submit" value="Submit files"/>
</td>
</tr>
</table>
<center>
</form>
</body>
</html>
上传页面
多路径文件上传
指定文件:
指定文件:
上载JSP:
<%@ page import="java.util.List" %>
<%@ page import="java.util.Iterator" %>
<%@ page import="java.io.File" %>
<%@ page import="org.apache.commons.fileupload.servlet.ServletFileUpload"%>
<%@ page import="org.apache.commons.fileupload.disk.DiskFileItemFactory"%>
<%@ page import="org.apache.commons.fileupload.*"%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<center><table border="2">
<tr><td><h1>Your files uploaded </h1></td></tr>
<%
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("C:\\ealvin@hp.com\\upload\\"+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();
}
}
}
}
%>
</table>
</center>
你上传的文件
谢谢你的回答,我正在做一个桌面应用,而不是网络应用。如果它是桌面应用,你能回答我吗?你需要设置二进制传输模式,请查看“谢谢你mtk”。我的问题解决了。
<%@ page import="java.util.List" %>
<%@ page import="java.util.Iterator" %>
<%@ page import="java.io.File" %>
<%@ page import="org.apache.commons.fileupload.servlet.ServletFileUpload"%>
<%@ page import="org.apache.commons.fileupload.disk.DiskFileItemFactory"%>
<%@ page import="org.apache.commons.fileupload.*"%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<center><table border="2">
<tr><td><h1>Your files uploaded </h1></td></tr>
<%
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("C:\\ealvin@hp.com\\upload\\"+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();
}
}
}
}
%>
</table>
</center>