关于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 (系统找不到指定的路径。) 展开
 我来答
shewen45
推荐于2018-04-09 · TA获得超过727个赞
知道小有建树答主
回答量:216
采纳率:0%
帮助的人:103万
展开全部
你用的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));
就这几步的问题 你自己看看
一杯水S7r
2011-12-01 · TA获得超过419个赞
知道小有建树答主
回答量:202
采纳率:0%
帮助的人:151万
展开全部
应该是获取路径错了,保存的路径中不能存在盘符(也就是你路径中的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>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sh_yueguang
2011-12-01
知道答主
回答量:12
采纳率:0%
帮助的人:4.9万
展开全部
那就是获取了错误的路径 好好找
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
29120406
2011-12-02 · TA获得超过805个赞
知道小有建树答主
回答量:608
采纳率:0%
帮助的人:324万
展开全部
你需要确保你的F盘下面有zhbit\uploadtemp这个文件夹
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
童克平
2011-12-12 · 超过12用户采纳过TA的回答
知道答主
回答量:43
采纳率:0%
帮助的人:36.8万
展开全部
我遇到了和你相同的问题,我是用SWFUpload做批量上传的时候,如果在上传50MB以上的文件时取消上传就会报这错。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式