当前位置: 首页 > news >正文

jspsmartupload上传下载,解决乱码

如题,这个上传下载功能用的是jspsmartupload组件,要到网上下载jar包

先上一个简单的案例程序:

上传:

前台:

<%@ page contentType="text/html;charset=UTF-8"%>
<html>
<head>
<title>jspSmartUpload组件文件上传</title>
</head>
<body><br><br><center><font size="5" color="#ff0000"><b>jspSmartUpload组件文件上传</b> </font><br><form name="uploadForm" enctype="multipart/form-data" method="post"action="servlet/SmartUploadServlet"><table border="0" align="center" cellpadding="2" cellspacing="2"bgcolor="snow"><input type="hidden" name="paramete" value="OK!"><tr><td><div align="center">上传文件1:</div></td><td><div align="center"><input type="file" name="file1" size="25" maxlength="80"></div></td></tr><tr><td><div align="center">上传文件2:</div></td><td><div align="center"><input type="file" name="file2" size="25" maxlength="80"></div></td></tr><tr width="100%"><td><div align="center"><input type="submit" value="上传文件"> <input type="reset"value="清除"></div></td></tr></table></form></center>
</body>
</html>

后台:

import java.io.IOException;
import java.io.PrintWriter;import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import com.jspsmart.upload.SmartUpload;
public class SmartUploadServlet extends HttpServlet {private ServletConfig config;//初始化Servletfinal public void init(ServletConfig config)throws ServletException{this.config=config;}//处理GET请求public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {this.doPost(request, response);}//响应POST请求public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {//获取PrintWriter对象PrintWriter out = response.getWriter();out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");out.println("<HTML>");out.println("<HEAD><TITLE>A Servlet</TITLE></HEAD>");out.println("<BODY bgcolor='white'><center><br>");out.println("<br><h1>jspSmartUpload</h1>");out.println("<hr><br>");//新建一个SmartUpload对象SmartUpload mySmartUpload=new SmartUpload();try{//上传初始化mySmartUpload.initialize(config, request, response);//设定每个上传文件的最大长度mySmartUpload.setMaxFileSize(1*512*1024);//设定总上传数据的长度mySmartUpload.setTotalMaxFileSize(1*1024*1024);//设定允许上传的文件的类型,只允许上传java,doc,txt文件mySmartUpload.setAllowedFilesList("java,doc,txt");//设定禁止上传的文件的类型,禁止上传带有exe,bat文件mySmartUpload.setDeniedFilesList("exe,bat");//上传文件mySmartUpload.upload();//将上传文件全部保存到指定目录String name = new String(mySmartUpload.getRequest().getParameter("paramete"));System.out.println(name);int count=mySmartUpload.save("/");out.println(//利用Request对象获取参数之值//String name= new String(request.getParameter("name").getBytes("ISO-8859-1"),"utf-8") ; mySmartUpload.getRequest().getParameter("paramete")+" ");out.println(name);//显示处理结果out.println("<font color=red>"+count+"</font> File Upload!<br>");//处理每个上传文件for(int i=0;i<mySmartUpload.getFiles().getCount();i++){com.jspsmart.upload.File file=mySmartUpload.getFiles().getFile(i);//判断用户是否选择了文件if(!file.isMissing()){//打印文件名out.println("File Name: <font color=red>"+file.getFileName()+"</font><br>");//打印文件扩展名out.println("File ExtName: <font color=red>"+file.getFileExt()+"</font><br>");//打印文件路径,包括目录out.println("Path: <font color=red>"+file.getFilePathName()+"</font><br>");//另存到以Web应用程序的根目录为文件根目录的目录下//(声明一下:在Myeclipse中,该目录位于工程下的.metadata/.me_tcat/webapps/该工程目录/upload/)file.saveAs("/upload/"+file.getFileName(),mySmartUpload.SAVE_VIRTUAL);}}}catch(Exception e){//异常处理//打印自定义异常信息out.println("Unanable to upload the file.<br>");out.println("Please Check The File Type");}}
}


下载:

前台:

<%@ page contentType="text/html;charset=UTF-8"%>
<html>
<head>
<title>jspSmartUpload组件下载文件</title>
</head>
<body><br><br><center><font size="5" color="#ff0000"><b>jspSmartUpload组件下载文件</b></font><br><form name="uploadForm" enctype="multipart/form-data" method="post"action="servlet/SmartDownloadServlet"><table border="0" align="center" cellpadding="2" cellspacing="2"bgcolor="snow"><tr><td><div align="center"><a href="servlet/SmartDownloadServlet?fileName=新建文本文档.txt">文件1</a></div></td><td><div align="center"><a href="servlet/SmartDownloadServlet?fileName=2.jpg">文件2</a></div></td></tr></table></form></center>
</body>
</html>


后台:

import java.io.IOException;import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import com.jspsmart.upload.SmartUpload;
public class SmartDownloadServlet extends HttpServlet {private ServletConfig config;//初始化Servletfinal public void init(ServletConfig config)throws ServletException{this.config=config;}//处理GET请求public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {this.doPost(request, response);}//响应POST请求public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {//新建一个SmartUpload对象SmartUpload mySmartUpload=new SmartUpload();try{//上传初始化mySmartUpload.initialize(config, request, response);//String name= new String(request.getParameter("name").getBytes("ISO-8859-1"),"utf-8") ; String fileName=new String(request.getParameter("fileName").getBytes("ISO-8859-1"),"utf-8");//System.out.println(fileName);//设定contentDisposition为null以禁止浏览器//自动打开文件//保证单击链接后是下载文件,若不设定,则mySmartUpload.setContentDisposition(null);//下载文件 可加路径"/upload/"mySmartUpload.downloadFile("/upload/"+fileName);}catch(Exception e){//异常处理}}
}


要注意一点,如果用了这个组件,那么上传的form表单中,要加一个属性:enctype="multipart/form-data"  ;而且因为此,如果要同时传其他参数,后台接收的时候不能用以前的request.getParamter(); 而是要用这个组件里面的方法:比如你同时在input中写了文件名docName,要传这个值,后台要在mySmartUpload.upload();这句后写String docName = mySmartUpload.getRequest().getParameter("doNname"); ,注意一定要在那句话之后。

现在问题来了,这个组件确实用起来非常简单,在一些小的项目中很实用,但他也有非常让人头疼的问题——中文乱码。这个问题也没有什么好的解决办法,因为jspsmartupload这个组件本来就不支持中文,唯一的一个解决办法就是改他的源码。你可以尝试上网找办法自己改一下,很麻烦的。现笔者已将此问题解决。完美支持jspsmartupload中文上传下载及传参的jar包如下:

http://download.csdn.net/detail/u011250851/7200253  希望能给你帮助。

http://www.lryc.cn/news/570544.html

相关文章:

  • 追踪 Kubernetes 中的网络流量
  • 【前端实战】如何让用户回到上次阅读的位置?
  • ★专题2:信息解析与盲处理目录
  • (JS)蔚蓝网上书店(课本案例)
  • STM32F103硬件IIC对MPR121的初始化
  • 5,事件实现文件保存
  • 常见的国内外Linux服务器运维面板汇总
  • 1351:面朝大海 春暖花开 [ 数据加强版 ]
  • 大旗网关闭,天涯带伤挂牌 论坛网站的末日来了?
  • HTML5 文本语义元素
  • 推荐标注数据标注
  • 处理bootsafa64.sys丢失
  • Python打卡训练营Day54
  • LG P4278 带插入区间K小值 Solution
  • Ghost8.0分区备份与恢复详细图解
  • 分享亿个HTML炫酷特效代码
  • Windows7 32位 旗舰版 [轻度优化 2.6G]
  • SpringBoot电脑商城项目--用户注册功能
  • Static修饰的变量定义在头文件(.h)中的影响
  • 500G 史上最全的JAVA全套视频教程网盘
  • semi-BATNet
  • Kotlin实现文件上传进度监听:RequestBody封装详解
  • web前端学习(三)——HTML5的字体、特殊符号、插入图片及头部元素的相关标签设置
  • 摩托罗拉v8对讲机驱动软件_摩托罗拉驱动下载安装教程
  • Meta-Analysis
  • 开源加密软件 TrueCrypt使用方法(图)
  • Rviz2中,在rviz和launch文件中都需要配置urdf文件,二者作用上的区别?
  • WordPress开启多站点功能以及插件MU Domain Mapping教程
  • CToolBar的使用总结(2)
  • html设置文本框为只读