jsp中簡易版本的圖片上傳程序


1.下載相應的組件的最新版本

Commons FileUpload 可以在http://jakarta.apache.org/commons/fileupload/下載

附加的Commons IO  可以在http://jakarta.apache.org/commons/io/下載

2.將commons-fileupload-1.2.1.jar commons-io-1.4.jar拷貝到$TOMCAT\common\lib目錄下

3.具體調用代碼如下:

3.1 上傳頁面代碼:

//UploadExample.jsp
 
<%@ page contentType='text/html;charset=gb2312'%>
<html>
<title><%= application.getServerInfo() %></title>
<body>
上傳文件程序應用示例
<form action='doUpload.jsp' method='post' enctype='multipart/form-data'>
<%-- 
類型enctype用multipart/form-data,這樣可以把文件中的數據作為流式數據上傳,不管是什么文件類型,均可上傳。
--%>
請選擇要上傳的文件<input type='file' name='upfile' size='50'>
<input type='submit' value='提交'>
</form>
</body>
</html>

3.2 后台處理頁面

<%@ page language="java" import="java.util.*,java.io.*" pageEncoding="GBK"%>
<%@ page import="org.apache.commons.fileupload.servlet.ServletFileUpload"%>
<%@ page import="org.apache.commons.fileupload.disk.DiskFileItemFactory"%>
<%@ page import="org.apache.commons.fileupload.*"%>
<% response.setContentType("text/html");
//   圖片上傳路徑
   String uploadPath =request.getSession().getServletContext().getRealPath("/")+"upload/images/";
//   圖片臨時上傳路徑
   String tempPath = request.getSession().getServletContext().getRealPath("/")+"upload/images/temp/";
//   圖片網絡相對路徑
   String imagePath=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+request.getContextPath()+"/"; 
//   文件夾不存在就自動創建:
   if(!new File(uploadPath).isDirectory())
   new File(uploadPath).mkdirs();
   if(!new File(tempPath).isDirectory())
   new File(tempPath).mkdirs();
   try {
   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 file = (FileItem)i.next();
//   獲得文件名,這個文件名是用戶上傳時用戶的絕對路徑:
   String sourcefileName = file.getName();
   if(sourcefileName!=null&&(sourcefileName.endsWith(".jpg")||sourcefileName.endsWith(".gif"))) {
//   在這里可以記錄用戶和文件信息,生成上傳后的文件名
   String destinationfileName=null;
   Random rd = new Random();
   Calendar time = Calendar.getInstance();
   if(sourcefileName.endsWith(".jpg")){
   destinationfileName=String.valueOf(time.get(Calendar.YEAR))
   + String.valueOf(time.get(Calendar.MONTH))
   + String.valueOf(time.get(Calendar.DAY_OF_MONTH))
   + String.valueOf(time.get(Calendar.HOUR_OF_DAY))
   + String.valueOf(time.get(Calendar.MINUTE))
   + String.valueOf(time.get(Calendar.SECOND))
   + String.valueOf(rd.nextInt(100)) + ".jpg";
   }else if(sourcefileName.endsWith(".gif")){
   destinationfileName=String.valueOf(time.get(Calendar.YEAR))
   + String.valueOf(time.get(Calendar.MONTH))
   + String.valueOf(time.get(Calendar.DAY_OF_MONTH))
   + String.valueOf(time.get(Calendar.HOUR_OF_DAY))
   + String.valueOf(time.get(Calendar.MINUTE))
   + String.valueOf(time.get(Calendar.SECOND))
   + String.valueOf(rd.nextInt(100)) + ".gif";
   }
   File f1=new File(uploadPath+ destinationfileName);
   file.write(f1);
   out.print(sourcefileName+"成功上傳!") ;
   out.print("<img src="+imagePath+"upload/images/"+destinationfileName+">");
   }else{
   out.println("上傳文件出錯,只能上傳 *.jpg , *.gif");
   }
   }
//   跳轉到上傳成功提示頁面
   }
   catch(Exception e) {
//   可以跳轉出錯頁面
   }
   out.flush();
   out.close();
%>

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM