SmartUpload

来源:互联网 发布:nexus7跳过网络验证 编辑:程序博客网 时间:2024/06/05 10:50

SmartUpload主要功能是上传文件

上传图片:可以通过smartUpload实现

1.     配置smartupload.jar文件

smartupload.jar文件复制到C:/Program Files/Apache Software Foundation/Tomcat 5.0/common/lib文件夹下

2.     可以进行开发

       此开发依然用form表单(test/smart文件夹下)

             对于上传图片,因为一般图片都比较大,所以只能使用post提交方式

             如果上传图片,则需要对表单的数据进行封装

                    如何封装:如下代码

<form action="sample01.jsp" method="post"ENCTYPE="multipart/form-data">//红色部分表示对数据进行了封装

选择要上传的文件

<input type="file" name="pic">

<input type="submit" value="上传">

 

</form>

 

如果图片混合表单(输入用户名的表单)一起上传,会有什么问题

如果表单被封装,则无法使用request直接取得输入参数,如下代码

form action="sample02.jsp" method="post" ENCTYPE="multipart/form-data">

输入名字

<input type="text" name="name">

选择要上传的文件

<input type="file" name="pic">

<input type="submit" value="上传">

 

</form>

 

<jsp:useBean id="smart"  scope="page"  class="org.lxh.smart.SmartUpload"/>

 

//上面的是导入包

 

<%--

      // 1、上传初始化

      smart.initialize(pageContext) ;

      // 2、准备上传

      smart.upload() ;

      // 3、保存上传的文件

      smart.save("/upload");

--%>

<%

      String name= request.getParameter("name");

 

%>

<%=name%>

安了浏览和上传后,跳转到sample02.jsp会输出null,原因:表单被封被

输入的结果是: null

解决如下:

这个方法是smart中的Request方法

String name= smart.getRequest().getParameter("name");

可以输出txt文件中的内容

实验:用户输入上传图片名称,上传后的名称由用户输入决定

但它的后缀不能改变,所以先改变它的后缀

eclipse中加入smartupload.jar

首先建立一个test工程,再单击工程名右键找到属性/java构建路径/库添加外部JAR/浏览找到文件即可

su.getFiles().getFile(0).getFileExt();//取得扩展名称

保存文件:保存输入的文件名和扩展名

smart.getFiles().getFile(0).saveAs("/upload/"+name+"."+ext);

 

文件只有一个所以从0开始

附加:

servlet中使用smartupload组件/

 response.setContentType("text/html;charset=gb2312");
      PrintWriter out = response.getWriter();
         SmartUpload mySmartUpload = new SmartUpload();
     String currentDirectoryPath=null;
     String savePath="E:/public_html/java_root/NETDISK/WebRoot/NET_SPACE/1/
我的音乐/";
          //mySmartUpload.setDenyPhysicalPath(true);
          mySmartUpload.setForcePhysicalPath(true);
           mySmartUpload.initialize(this.getServletConfig(), request,response);
           //
设定上传限制
           // 1.
限制每个上传文件的最大长度。10M
           mySmartUpload.setMaxFileSize(10000000);
          
           // 2.
限制总上传数据的长度。
          
           // mySmartUpload.setTotalMaxFileSize(20000);
          
           // 3.
设定允许上传的文件(通过扩展名限制),仅允许doc,txt文件。
          
           // mySmartUpload.setAllowedFilesList("doc,txt");
          
           // 4.
设定禁止上传的文件(通过扩展名限制),禁止上传带有exe,bat, jsp,htm,html扩展名的文件和没有扩展名的文件。
          
           // mySmartUpload.setDeniedFilesList("exe,bat,jsp,htm,html,,");
         // Deny physical path
         
          
           try {
       mySmartUpload.upload();
      } catch (SmartUploadException e1) {
       // TODO Auto-generated catch block
       e1.printStackTrace();
      }
          
           //
读取其它数据
          
           com.jspsmart.upload.Request req = mySmartUpload.getRequest();
          
           String title = req.getParameter("dest");
          
           //
保存文件
           for (int i = 0; i < mySmartUpload.getFiles().getCount(); i++) {
          
           com.jspsmart.upload.File file = mySmartUpload.getFiles().getFile(i);
          
           if (file.isMissing()) continue;
           try {
       file.saveAs(savePath+file.getFileName());
      } catch (SmartUploadException e) {
       // TODO Auto-generated catch block
       e.printStackTrace();
       logger.info("e:"+e);
      }
          
           }        
            out.println("dest:"+title);
      out.close(); 

 

 

原创粉丝点击