jsp上傳下載圖片

jsp實現照片的上傳和下載javascript

一.進入頁面html

@RequestMapping("/upimage")java

 public String upImageDemo() {jquery

  return "/testImageUp";服務器

 }app

二.上傳照片jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>post

<%ui

 String path = request.getContextPath();this

 String basePath = request.getScheme() + "://"

   + request.getServerName() + ":" + request.getServerPort()

   + path + "/";

 System.out.println("path:"+path);

 System.out.println("basePath:"+basePath);

%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

<title>多圖片上傳</title>

<script src="${basePath}../js/jquery-1.11.0.min.js"></script>

<script src="${basePath}../js/upImage.js"></script>

<body>

 <form enctype="multipart/form-data"

  action="${basePath}upimage2" method="post">

  <div id="preview"></div>

  <div id="file-input">

   <input id="id0" type="file" name="/upload/"

    onchange="previewImage(this)">

  </div>

  <input type="submit" value="提交">

 </form>

</body>

</html>

三.進入跳轉的頁面進行操做(此處由於只能頁面傳頁面,而頁面有在WEB-INF下面,只能經過這    

    個方式跳轉到指定頁面)

@RequestMapping("/upimage2")

 public void image2Servicec(HttpServletRequest request,HttpServletResponse response){

  try {

   request.getRequestDispatcher("/WEB-INF/views/testImageUp2.jsp").forward(request,response);

  } catch (ServletException e) {

   e.printStackTrace();

  } catch (IOException e) {

   e.printStackTrace();

  }

 } 

四.進行下載到服務器的指定目錄

<%@ page language="java" import="java.util.*,java.io.*"  

    pageEncoding="utf-8"%>  

<%@ page import="com.jspsmart.upload.SmartUpload"%>  

<%@ page import="javax.servlet.jsp.tagext.TryCatchFinally"%>  

<%@ page import="javax.imageio.ImageIO"%>  

<%@ page import="java.awt.image.BufferedImage"%>  

<%@ page import="com.sun.image.codec.jpeg.JPEGImageEncoder"%>  

<%@ page import="com.sun.image.codec.jpeg.JPEGCodec"%>  

<%  

    String path = request.getContextPath();  

    String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort()  

            + path + "/";  

%>  

<%  

 System.out.println("==========into testImageUp2.jsp===========");

    //這個處理文件實現了對圖片的壓縮  

    SmartUpload mySmartUpload = new SmartUpload();  

    long file_size_max = 40000000;  

    String fileName2;//文件名  

    String ext;//文件擴展名  

    String testVar;  

    String url = "/upload/";//應保證在根目錄中有此目錄的存在  

    System.out.println("url:"+url);

    //初始化  

    System.out.println("pageContext:"+pageContext);

    mySmartUpload.initialize(pageContext);  

    //只容許上載此類文件  

    try {  

        //支持上載文件的後綴名  

        mySmartUpload.setAllowedFilesList("jpg,gif");  

        //mySmartUpload.setAllowedFilesList("jpg,gif,jpeg,png");

        //不支持制定的後綴  

        mySmartUpload.setDeniedFilesList("exe");

 

        //上載文件  

         mySmartUpload.upload();//不指定編碼的upload()方法  

       // mySmartUpload.upload("utf-8");//指定編碼的upload()方法  

    } catch (Exception e) {  

        out.print("<script type=\"text/javascript\">");  

        out.print("window.alert(\"只容許上傳.jpg和.gif類型圖片文件\");");  

        out.print("window.location=\"upload.html;\"");  

        out.print("</script>");  

    }  

    try {  

     System.out.println("the files size:"+(mySmartUpload.getFiles().getCount()-1));

        for (int i = 0; i < mySmartUpload.getFiles().getCount(); i++) {

            com.jspsmart.upload.File myFile = mySmartUpload.getFiles().getFile(i);  

         if(myFile.getFileExt() == "" || myFile.getFileExt() == null){

          continue;

         }

           /*  if (myFile.isMissing()) {

                out.print("<script type=\"text/javascript\">");  

                out.print("window.alert(\"請先選擇要上傳的文件\");");  

                out.print("window.location=\"upload.html;\"");  

                out.print("</script>");  

            } else {   */

                String myFileName = myFile.getFileName();//取得上載的文件的文件名  

                ext = myFile.getFileExt();//取得後綴名  

                if (!(ext.length() > 0)) {  

                    //out.println("**************myFileName的名稱是:" + myFileName);  

                }  

 

                int file_size = myFile.getSize();//取得文件的大小  

                String saveUrl = "";//文件保存路徑  

                if (file_size < file_size_max) {  

                    //更改文件名,取得當前上傳時間的毫秒數值  

                    Calendar calendar = Calendar.getInstance();  

                    String fileName = String.valueOf(calendar.getTimeInMillis());//設置新的文件名  

                    saveUrl += fileName + "." + ext;  

                    myFile.saveAs(saveUrl, mySmartUpload.SAVE_PHYSICAL);  

 

                    //上傳完成,開始生成縮略圖  

                    java.io.File file = new java.io.File(saveUrl);//讀入剛纔上傳的文件  

                    out.println("ext=" + ext);  

                    String newUrl = request.getRealPath("/") + url + fileName + "_min." + ext;//新的縮略圖保存地址  

                    java.awt.Image src = javax.imageio.ImageIO.read(file);//構造Image對象  

                    float tagSize = 200;  

                    int old_w = src.getWidth(null);//獲得原圖寬  

                    int old_h = src.getHeight(null);//獲得原圖高  

                    int new_w = 0;  

                    int new_h = 0;  

                    int tempSize;//設置臨時大小  

                    float tempDouble;  

 

                    if (old_w > old_h) {  

                        tempDouble = old_w / tagSize;  

                    } else {  

                        tempDouble = old_h / tagSize;  

                    }  

                    new_w = Math.round(old_w / tempDouble);  

                    new_h = Math.round(old_h / tempDouble);  

                    BufferedImage tag = new BufferedImage(new_w, new_h, BufferedImage.TYPE_INT_RGB);  

                    tag.getGraphics().drawImage(src, 0, 0, new_w, new_h, null);//繪製縮小後的圖  

                    FileOutputStream newImage = new FileOutputStream(newUrl);//輸出到文件流  

                    JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(newImage);  

                    encoder.encode(tag);//近JPEG編碼  

                    newImage.close();  

 

                } else {  

                    out.print("<script type=\"text/javascript\">");  

                    out.print("window.alert(\"上傳文件大小不能超過\"+(file_size_max/1000)+\"K\");");  

                    out.print("window.location=\"upload.html;\"");  

                    out.print("</script>");  

                }  

          /*   }   */

        }  

    } catch (Exception e) {  

        e.printStackTrace();  

    }  

%>  

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  

<html>  

    <head>  

        <base href="<%=basePath%>">  

        <title>處理上傳圖片的JSP</title>  

        <meta http-equiv="pragma" content="no-cache">  

        <meta http-equiv="cache-control" content="no-cache">  

        <meta http-equiv="expires" content="0">  

        <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">  

        <meta http-equiv="description" content="This is my page">  

    </head>  

    <body>  

    </body>  

</html>  

相關文章
相關標籤/搜索