关于SmartUpload技术

原创 2018年04月17日 15:22:45
关于SmartUpload技术
一、SmartUpload技术
(一)优点
1、使用简单。在JSP文件中仅仅书写三五行java代码就可以搞定文件的上传或下载,方便。

2、能全程控制上传。利用jspSmartUpload组件提供的对象及其操作方法,可以获得全部上传文件的信息(包括文件名,大小,类型,扩展名,文件数据等),方便存取。

3、能对上传的文件在大小、类型等方面做出限制。如此可以滤掉不符合要求的文件。

4、下载灵活。仅写两行代码,就能把Web服务器变成文件服务器。不管文件在Web服务器的目录下或在其它任何目录下,都可以利用jspSmartUpload进行下载。
(二)缺点
1、不适用于上传大文件
     使用smartupload上传过大文件,或者多文件的时候可能出现CPU或内存占用过高的问题.并且:只有重新启动容器才能恢复正常
(三)实例代码:
public class SmartFileUploadUtil {
      
          private ServletConfig config;
          HttpServletRequest request;
          HttpServletResponse response;
            //文件存储路径
            private static String  FILE_UPLOAD_PATH="F:/Javaworkspace/BookManagementSystem/WebContent/jsp图书售卖网站/bookImages/";
            //上传文件大小限制
            private static int FILE_SIZE_LIMIT=1024*1024*5;
            //上传所有文件大小限制
            private static int TOTAL_FILE_SIZE_LIMIT=1024*1024*100;
            //上传文件类型限制
            private static String FILE_TYPE_LIMIT="jpg,png";
            
            private static int result=0;
            
            public SmartFileUploadUtil(ServletConfig  config,HttpServletRequest request,HttpServletResponse response){
                  this.config=config;
                  this.request=request;
                  this.response=response;
            }
            
            public int smartFileUpload(){
                  try {
                        request.setCharacterEncoding("utf-8");
                  } catch (UnsupportedEncodingException e1) {
                        e1.printStackTrace();
                  }
                  response.setCharacterEncoding("UTF-8");
                  response.setContentType("text/html;charset=UTF-8");
                  //判断上传路径是否存在
                  File f=new File(FILE_UPLOAD_PATH);
                  if(!f.exists()){
                        f.mkdirs();
                  }
                  
                  SmartUpload su=new SmartUpload();
                  try {
                        //初始化smartupload对象
                        su.initialize(config,request,response);
                        //设置上传文件大小
                        su.setMaxFileSize(FILE_SIZE_LIMIT);
                        //设置上传所有文件大小
                        su.setTotalMaxFileSize(TOTAL_FILE_SIZE_LIMIT);
                        //限制上传文件类型
                        su.setAllowedFilesList(FILE_TYPE_LIMIT);
                        //上传文件
                        su.upload();
                        //返回成功上传文件数目
                        result=su.save(FILE_UPLOAD_PATH);
                        System.out.println("上传成功了"+result+"个文件!");
                  } catch (ServletException e) {
                        System.out.println("ServletException");
                        e.printStackTrace();
                  }catch (IOException e) {
                System.out.println("IOException");
                        e.printStackTrace();
                  } catch (SmartUploadException e) {
                        System.out.println("SmartUploadException");
                        e.printStackTrace();
                  }
                  return result;       
            }
}

Servlet类
public class FileUploadTest extends HttpServlet {
      private static final long serialVersionUID = 1L;
      int result=0;
      protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            request.setCharacterEncoding("utf-8");
            response.setCharacterEncoding("UTF-8");
            response.setContentType("text/html;charset=UTF-8");
            SmartFileUploadUtil smartFileUploadUtil=new SmartFileUploadUtil(getServletConfig(),request,response);
            int result=smartFileUploadUtil.smartFileUpload();
        if(result>0){
            System.out.println("上传成功!");
        }
      }
      protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            doGet(request, response);
      }
}
JSP form表单代码:
<form action="FileUploadTest"
method="post" enctype="multipart/form-data">
文件位置:<input type="file"name="mfile1"><br>
文件位置:<input type="file"name="mfile1"><br>
文件位置:<input type="file"name="mfile1"><br>
<input type="submit"value="提交">  
</form>

红色标记处为易错代码



关于项目干系人

-
  • 1970年01月01日 08:00

用SmartUpload实现文件上传

首先要导入SmartUpload.jar包 链接地址:http://pan.baidu.com/s/1eStyDZc 示例: index.jsp       enctype="mu...
  • qq_17505335
  • qq_17505335
  • 2016-05-23 14:59:10
  • 1987

SmartUpload.jar和使用说明

  • 2008年12月18日 10:00
  • 18.13MB
  • 下载

文件上传和下载(三)--【SmartUpload】

一、简介 SmartUpload一种java上传组件包,可以轻松的实现文件的上传及下载功能。 使用该组件可以轻松的实现上传文件的限制,也可以轻易的取得文件上传的名称、后缀、大小等。 二、详细介绍...
  • qw765811529
  • qw765811529
  • 2016-02-27 15:45:06
  • 2228

smartupload 的简单使用(上传)

今天。。。省略一万字,反正恨死隔壁宿舍的老王,妈蛋,把我电脑老虎机的分数都输光了。。。。天啥的。。省略一万字 最近开始学习javaweb,想了想,下载还有上传是两个必须要学会的功能,所以就开始学习 ...
  • HUSHILIN001
  • HUSHILIN001
  • 2016-05-15 22:36:55
  • 352

利用SmartUpload文件上传,创建目录,删除文件等操作范例

新建不存在的上传目录      String Mkdir(String path) {       String msg=null;       java.io.File dir; // 新建文件对象...
  • hwctl
  • hwctl
  • 2007-06-08 10:57:00
  • 2566

一、SmartUpload上传文件乱码解决纪实

一、SmartUpload上传文件乱码解决纪实      恶心指数:五星      完成程度:80%(文件名问题未解决)      问题描述:在windows下开发的web应用,用到了smartupl...
  • purecoffee
  • purecoffee
  • 2005-02-02 10:20:00
  • 993

smartUpload上传下载文件以及中文乱码

上传文件 index.jsp JSP Page 输入你的名字:...
  • yimagudao
  • yimagudao
  • 2016-09-02 23:39:56
  • 957

使用SmartUpload批量上传文件

在实际开发中为了提高开发效率,一般都是使用FileUpload(Struts2用的就是这个)和SmartUpload组件进行文件上传下载 使用SmartUpload批量上传文件 1.导入相关jar...
  • qq_33716026
  • qq_33716026
  • 2016-09-05 11:05:35
  • 750
收藏助手
不良信息举报
您举报文章:关于SmartUpload技术
举报原因:
原因补充:

(最多只允许输入30个字)