光盘\TM\sl\9\5 用servlet实现文件上传的例子 文件不能上传
发表在JavaWeb图书答疑 2018-03-29 《Java Web从入门到精通》第9章 过滤器和监听器 199页-200页
是否精华
版块置顶:

光盘\TM\sl\9\5 用servlet实现文件上传的例子  文件不能上传



public class UploadServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
response.setContentType("textml;charset=UTF-8");
PrintWriter out = response.getWriter();
String path = this.getServletContext().getRealPath("/"); //获取服务器地址
Part p = request.getPart("file1"); //获取用户选择的上传文件
if (p.getContentType().contains("image")) { // 仅处理上传的图像文件
ApplicationPart ap = (ApplicationPart) p;
String fname1 = ap.getFilename(); //获取上传文件名
int path_idx = fname1.lastIndexOf("\\") + 1; //对上传文件名进行截取
String fname2 = fname1.substring(path_idx, fname1.length());
p.write(path + "/upload/" + fname2); // 写入 web 项目根路径下的upload文件夹中
out.write("文件上传成功");
}
else{
  out.write("请选择图片文件!!!");
}
}
}


222.jpg


我要上传的文件名是:E:\eclipse\1.jpg

程序中的解析后的文件名是:E:eclipse1.jpg

把斜杠“\”弄丢了,怎么回事?怎样解决?


注释:tomcat的版本是7,与书中讲解的一样,JDK版本是1.8

分享到:
精彩评论 5
轻狂酸秀才
学分:41 LV2
2018-03-29
沙发
this改为request
无语_mrkj
学分:3155 LV11
2018-03-30
板凳

您出现的问题是不能上传文件吗?我这里刚刚测试过,可以正常上传呢。

linlgdevelope
学分:4 LV1
2018-04-01
地板

无语_mrkj 发表于2018-03-30 11:46

您出现的问题是不能上传文件吗?我这里刚刚测试过,可以正常上传呢。

显示的“文件上传成功”,实际上是空文件,无内容

linlgdevelope
学分:4 LV1
2018-04-01
4L

轻狂酸秀才 发表于2018-03-29 22:53

this改为request

改后也是一样的,不起作用

无语_mrkj
学分:3155 LV11
2018-04-02
5L

您用的是什么操作系统?Eclipse 、Tomat、JDK的详细版本是什么?浏览器用的是什么?

我这里是Windows 7操作系统、Eclipse 是Eclipse for Java EE Mars.2即4.5.2版本、Tomcat是7.0.47、JDK 1.8.0_131。浏览器用Google 的Chrome和IE 11浏览器都没有问题。

现在我这个环境上传后的图片是可以正常看到图片中的内容的。

首页上一页 1 下一页尾页 5 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照