servlet上传练习

一.

 

From表单增加enctype属性,二进制格式上传

增加这个属性后,后台无法通过request.getparameter()来取值,也就无法通过得到

OP值来执行switch的判断操作

因此通过Stuservlet无法完成上传文件操作

 

二.上传文件通过第三方jar包完成,主要有三类

  1. apachecommons-fileupload

主流方式,菜鸟教程也是这个,上传文件蛮方便的,但是取回其他input感觉麻烦,主要是我太菜,没能摸透吧。

  1. O'Reillycos

大概看了下Demo,感觉也不方便

  1. jspsmartSmartUpload

这个听说效率不高,但是贼方便,取值,上传文件贼轻松啊兄弟们,我们就用它了,它缺点是对中文处理不好,内部编码处理是gbk,我们需要改一下页面编码即可,放心,不影响你们数据库的编码,只是前端改gbk,当然你也可以改jar包源码,百度一下就行,好像也有改好的jar包,你们直接下载用也行,CSDN的收费,他妈的

  1. 12种你们可以试一下,我就不试了,见好就收

 

三,BB,上硬菜,上面说了无法在Stuservlet中进行文件上传操作,因此再写一个

  1. 在你的servlet文件下新建一个UploadServlet.java

代码参考UploadServlet.java

  1. 几个重点说一下

 

 

此处为数据库的插入,是不是感觉取值很方便,直接就取回来了,牛逼。

Xh1是我自己的命名方式,你们改成你们自己的xh就行。

 

此处的for循环作用是处理多个上传文件用的,我直接复制的Demo,没有去掉,因为我们一次只上传一张照片,所以此处的for循环是可以去掉不用的,加上也没影响

 

重点:saveAs()执行文件写入操作,

 

 

前面的img是你的存储文件夹的相对位置,你们根据自己的需求修改

后面的是文件名,命名规则就按我这个来,xh1改成xh即可

 

  1. servlet写完后去配置XML文件

 

 

 

  1. 去修改addStu.jspaction这样点击增加按钮时,便不会再去执行Stuservlet了,而是现在的uploadservlet

 

 

 

  1. 去修改stuShow.jsp

 

 

去相对地址把图片取回来即可,宽度改成50左右,否则会占满屏幕

随便补充两句

  1. gbk编码
  2.  

这么改一下就行,第一行那个其实可以不用改,我觉得,不过我没试,就全改了

只要改addStu.jsp 即可,其他的不用改。

  1. 如果按照这个步骤操作完了,还是没成功,可以刷新一下容器,就是重启或者更新一下服务器
  2.  

 

 

posted @ 2018-09-30 21:09  梁小灶  阅读(95)  评论(0编辑  收藏  举报