`

JSP/Servlet图片或者文件简单上传

 
阅读更多

使用的是:common-fileUpload 上传组件,把common-fileUpload .jar 引入web工程lib中;

 

下面的页面及处理上传的代码。

--------------------HTML--------------------

<body>
   <form action="doPost.jsp" method="post" enctype="multipart/form-data">
    <table style="text-align: center;">
     <tr>
      <td>
       <input type="file" name="img">
      </td>
     </tr>
     <tr>
      <td>
       <input type="submit" value="提交">
      </td>
     </tr>
     </table>
    </form>
  </body>

注意:action 中添加 enctype="multipart/form-data">

 

 

 

--------------------action-----------------

我这里用的是doPost.jsp 作为servlet。因为jsp本是就是特殊的servlet。


 <body>
  <%
  //得到上传的路径
    String upload=request.getRealPath("/")+"upload";
    String  tempPath=request.getRealPath("/")+"tempPath";

    //上传部分
   DiskFileUpload fu = new DiskFileUpload();
        // 设置最大文件尺寸,这里是4MB
        fu.setSizeMax(4194304);
        // 设置缓冲区大小,这里是4kb
        fu.setSizeThreshold(4096);
        // 设置临时目录:
        fu.setRepositoryPath(tempPath);
    // 得到所有的文件:
        List fileItems = fu.parseRequest(request);
        Iterator i = fileItems.iterator();
  while(i.hasNext())
  {
     FileItem fi = (FileItem)i.next();
            // 获得文件名,这个文件名包括路径:
            String fileName = fi.getName();
           //修改名字
          
    int begin=fileName.lastIndexOf(".");
    int end=fileName.length();
    //得到文件后缀
    String lastName=fileName.substring(begin,end);
            //得到系统时间 和随机数
    Date date=new Date();
    SimpleDateFormat dFormat=new SimpleDateFormat("yyyyMMddhhmmss");
    String mytime=dFormat.format(date);
    Random rd=new Random(999999);
    int num=rd.nextInt();
          String newName=mytime+num+lastName;
           
           
            if(fileName!=null) {
             File file=new File(newName);
             File saveFile=new File(upload,file.getName());
             //把文件上传至目录中
             fi.write(saveFile);
                // 在这里可以记录用户和文件信息
                // ...
                // 写入文件a.jpg,你也可以从fileName中提取文件名:
               
                //fi.write(new File(upload + "a.jpg"));
               
              }
   
   
  } 
 
 
   %>
</body>

 

 

特别说明:

1.项目添加了 common-fileUpload .jar

2. <form action="doPost.jsp" method="post" enctype="multipart/form-data">
3.处理上传的时候我把文件做了修改。思路是:系统时间和随机数+文件的后缀

(如:201109230837501622475814.jpg)

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics