版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_30408111/article/details/78833156
最近在做一个小项目的时候,设计到一个表单同时要上传图片和输入框数据的问题,出现了两个问题,现在简单记录一下,自己的完成过程。
附上自己的前台代码,一个表单同时包含文件上传个输入框数据的传输,在web中表单如果要是想上传文件,必须满足两个条件,第一:method=post,第二:enctype="multipart/form-data",以上两部缺一不可,下面附上我的前台代码:
<form action="RegIndexServlet" method="post" enctype="multipart/form-data" >
<h1>注册license</h1>
license文件:
<input type="file" name="file">
<br> 注册时长:
<input type="text" name="vaildtime" id="vaildtime">
<br>
<br>注册日期
<input id="regDate" name="regDate" type="text" value="<%=date%>" readonly="readonly">
<br>
<br> 注册节点数:
<input type="text" name="permissionHosts" id="permissionHosts">
<br>
<br>公司名称:
<input type="text" name="company" id="company">
<br>
<br>
<input type="submit" value="提交">
</form>
遇到的第一个问题:
在运用了enctype="multipart/form-data"之后,所有的数据以流的方式传输数据到后台,后台代码运用的servlet,但是运用request.getParameter(name);获取不到前台传输的数据,所以在这种情况下,可以运用SmartUpload组件获取,
SmartUpload组件实用方法:
1,下载jspSmartUpload组件,下载下来是一个zip文件解压到文件夹
2,利用cmd命令进入黑框,到解压之后的文件classes目录下,执行jar zcv jspSmartUpload.jar com命令,生成一个jspSmartUpload.jar 的jar包,直接把jar包导入工程中,就可以用了。
3,编写代码:这里附上我写的代码
SmartUpload su = new SmartUpload();
try {
su.initialize(this.getServletConfig(),request,response);
su.setMaxFileSize(10*1024*1024);//限制上传文件的大小
//mySmartUpload.setAllowedFilesList("txt,html,jpg,js");//设置允许上传的文件类型
//su.setDeniedFilesList("exe,doc,txt");//设置禁止上传的文件列表
su.upload();
String vaildtime = su.getRequest().getParameter("vaildtime");// 获取注册时长
String regDate = su.getRequest().getParameter("regDate");// 获取注册日期
String permissionHosts = su.getRequest().getParameter("permissionHosts");// 获取注册主机数
String company = su.getRequest().getParameter("company");// 获取注册公司名称
System.out.println(vaildtime + "....." + regDate + "....." + permissionHosts + "....." + company);
} catch (SmartUploadException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
这样就可以获取到数据表单中不是上传文件的输入框的数据了,
注意:在获取数据之前,必须要设置upload,否则是获取不到数据的。
二:当获取到数据之后发现,如果前台传输的是中文的话,传输到后台,是会乱码的,这是后就需要解决乱码问题,这个问题其实很简单
解决方法如下:
扫描二维码关注公众号,回复:
5701792 查看本文章
![](/qrcode.jpg)
String filename = su.getFiles().getFile(0).getFilePathName();//获取文件名
filename = new String(filename.getBytes("GBK"),"utf-8");
以上就是自己在开发的时候一个小小的提高吧!现在记录下来,希望可以帮到大家
注:不知道为啥在上传jspSmartUpload.zip资源的时候,传不上去,提示资源已存在,或许是有人已经上传了,大家需要可以找找下载,找不到可以留言邮箱,我发给你们。