关于jsp的文件上传,产生错误的问题:具体的错误提示如下: 20
javax.servlet.ServletException:org.apache.commons.fileupload.FileUploadBase$IOFileUpl...
javax.servlet.ServletException: org.apache.commons.fileupload.FileUploadBase$IOFileUploadException: Processing of multipart/form-data request failed. F:\zhbit\uploadtemp\upload_448d15fb_133f7b23a33__8000_00000001.tmp (系统找不到指定的路径。)
展开
展开全部
你用的fileupload吧 你要知道个问题
form 中Enctype=multipart/form-data 的作用!!!
ENCTYPE="multipart/form-data"用于表单里有图片上传 来确保匿名上载文件的正确编码
好像还有上传方式 只能用post 记不太清了
如果以上条件都满足 那你的错误信息就是因为设置上传文件大小。 所以产生了tmp文件 然后tmp文件路径没有设置 希望可以帮到你
// 设置上传文件大小 为1M
upload.setSizeMax(1000000)
DiskFileItemFactory factory = new DiskFileItemFactory();
String FileTemp = this.getServletContext().getRealPath("uploadFile/temp");
factory.setRepository(new File(FileTemp));
就这几步的问题 你自己看看
form 中Enctype=multipart/form-data 的作用!!!
ENCTYPE="multipart/form-data"用于表单里有图片上传 来确保匿名上载文件的正确编码
好像还有上传方式 只能用post 记不太清了
如果以上条件都满足 那你的错误信息就是因为设置上传文件大小。 所以产生了tmp文件 然后tmp文件路径没有设置 希望可以帮到你
// 设置上传文件大小 为1M
upload.setSizeMax(1000000)
DiskFileItemFactory factory = new DiskFileItemFactory();
String FileTemp = this.getServletContext().getRealPath("uploadFile/temp");
factory.setRepository(new File(FileTemp));
就这几步的问题 你自己看看
展开全部
应该是获取路径错了,保存的路径中不能存在盘符(也就是你路径中的F:)
不知道你使用框架了没有,没有使用的话就是一个小架包吧 commons-fileupload.jar
到网上下载这个架包(只有1MB多),把commons-fileupload-1.2.1.jar和commons-io-1.4.jar拷贝到lib文件夹下(应该知道吧)
servlet代码:
public class FileUploadServlet extends HttpServlet {
public void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//step1 创建一个工厂类的实例,该实例
//为解析器提供了缺省的配置。
DiskFileItemFactory factory =
new DiskFileItemFactory();
//step2 创建一个解析器
ServletFileUpload sfu =
new ServletFileUpload(factory);
//step3 使用解析器解析
try {
//解析之后,会将表单中的数据转换成一个个
//FileItem对象。一个表单域中的数据对应于一个
//FileItem对象。
List<FileItem> items =
sfu.parseRequest(request);
//step4 遍历items集合
for(int i=0;i<items.size();i++){
FileItem item = items.get(i);
//读表单域中的数据时,要区分表单域的类型
if(item.isFormField()){
//普通表单域
String username = item.getString();
System.out.println(username);
}else{
//文件上传表单域
ServletContext sctx =
getServletContext();
String path = sctx.getRealPath("upload");//upload是你项目文件夹webroot下的文件夹
//获得文件名
String fileName = item.getName();
System.out.println("fileName"+fileName);
fileName=String.valueOf(new Date().getTime());
fileName =CharsetConvert.getChineseCharset(fileName);
File file = new File(path + "\\" + fileName);
System.out.println("PATH:"+path);
item.write(file);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
JSP:
<body style="font-size:30px;">
<form action="upload" method="post"
enctype="multipart/form-data">
username:<input name="username"/>
<br/>
phone:<input type="file" name="file1"/>
<br/>
<input type="submit" value="Confirm"/>
</form>
</body>
不知道你使用框架了没有,没有使用的话就是一个小架包吧 commons-fileupload.jar
到网上下载这个架包(只有1MB多),把commons-fileupload-1.2.1.jar和commons-io-1.4.jar拷贝到lib文件夹下(应该知道吧)
servlet代码:
public class FileUploadServlet extends HttpServlet {
public void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//step1 创建一个工厂类的实例,该实例
//为解析器提供了缺省的配置。
DiskFileItemFactory factory =
new DiskFileItemFactory();
//step2 创建一个解析器
ServletFileUpload sfu =
new ServletFileUpload(factory);
//step3 使用解析器解析
try {
//解析之后,会将表单中的数据转换成一个个
//FileItem对象。一个表单域中的数据对应于一个
//FileItem对象。
List<FileItem> items =
sfu.parseRequest(request);
//step4 遍历items集合
for(int i=0;i<items.size();i++){
FileItem item = items.get(i);
//读表单域中的数据时,要区分表单域的类型
if(item.isFormField()){
//普通表单域
String username = item.getString();
System.out.println(username);
}else{
//文件上传表单域
ServletContext sctx =
getServletContext();
String path = sctx.getRealPath("upload");//upload是你项目文件夹webroot下的文件夹
//获得文件名
String fileName = item.getName();
System.out.println("fileName"+fileName);
fileName=String.valueOf(new Date().getTime());
fileName =CharsetConvert.getChineseCharset(fileName);
File file = new File(path + "\\" + fileName);
System.out.println("PATH:"+path);
item.write(file);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
JSP:
<body style="font-size:30px;">
<form action="upload" method="post"
enctype="multipart/form-data">
username:<input name="username"/>
<br/>
phone:<input type="file" name="file1"/>
<br/>
<input type="submit" value="Confirm"/>
</form>
</body>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
那就是获取了错误的路径 好好找
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你需要确保你的F盘下面有zhbit\uploadtemp这个文件夹
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我遇到了和你相同的问题,我是用SWFUpload做批量上传的时候,如果在上传50MB以上的文件时取消上传就会报这错。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询