程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> java緊縮文件和下載圖片示例

java緊縮文件和下載圖片示例

編輯:關於JAVA

java緊縮文件和下載圖片示例。本站提示廣大學習愛好者:(java緊縮文件和下載圖片示例)文章只能為提供參考,不一定能成為您想要的結果。以下是java緊縮文件和下載圖片示例正文


本文實例為年夜家分享了java緊縮文件和下載圖片示例,供年夜家參考,詳細內容以下

主頁面index.xml

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

<html>
 <head>

  <title>項目標主頁</title>

 </head>

 <body>
  <h2>主頁主頁</h2>
  <h2>湖南長沙</h2>
  <h3>宣布方法一......</h3>
  <img src="images/1.jpg"/><!-- 絕對途徑 -->
  <br/>
  <!-- 相對途徑 -->
  <a href="/helloWeb/gzip">頁面內容緊縮演示--gzip</a><br/><br/>
  <a href="down">下載圖片</a><br/><br/>



 </body>
</html>

緊縮文件:GzipServlet.java
只要被緊縮文件足夠年夜,能力抵消緊縮開支,有用緊縮。不然,很小的文件緊縮以後的文件年夜小反而變年夜

package cn.hncu.servlet;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.zip.GZIPOutputStream;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class GzipServlet extends HttpServlet {

  @Override
  protected void service(HttpServletRequest req, HttpServletResponse resp)
      throws ServletException, IOException {
    String str="vuttyjhgyurc湖南長沙surdivsf安徽蕪湖890-80897或許更長v就會習氣如許tvsduvgkjxhvnxzc.nlkcjsdfpeifniuq4ey8f048eyuyli"
        +"skchkxhckxzncnxclkjhasliduhasiduisugdlisgdlkjadhlksjhdlkasjdhasklhdlkjsahashdkskdjhkdjshkldsjhlksjhfkljd";
//   byte src[]=str.getBytes();//應用平台默許編碼(GBK),沒有就應用ISO-8859-1
    byte src[]=str.getBytes("utf-8");

    //後台向閱讀器發的數據,閱讀器不熟悉--須要下載,用文本翻開是亂碼。所以要設置協定
    ByteArrayOutputStream bOut=new ByteArrayOutputStream();//內存流
    GZIPOutputStream gOut=new GZIPOutputStream(bOut);
    gOut.write(src);//把src壓到bOut
    gOut.close();//刷緩存
    byte dest[]=bOut.toByteArray();//src==>dest
    //總結:輸入緊縮數據時要設置呼應頭
    resp.setHeader("Content-Encoding", "gzip");
    //設置呼應頭以後,就不消下載,穩定碼
    resp.setContentType("text/html;charset=utf-8");//必定要把str.getByte設置編碼


    //當文件很小時:緊縮有效果,反而包袱(不克不及抵消緊縮所須要的開支)...較年夜文件會被壓小(普通>200k)
    System.out.println("緊縮前的長度:"+src.length);
    System.out.println("緊縮後的長度:"+dest.length);
    //把緊縮以後的數據dest刷出去
    OutputStream out=resp.getOutputStream();//resp.getWriter();
//   out.write(src);
    out.write(dest);

  }

}

下載圖片:DownServlet .java(圖片在src目次上面)

package cn.hncu.servlet;


import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URLEncoder;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class DownServlet extends HttpServlet {

  @Override
  protected void service(HttpServletRequest req, HttpServletResponse resp)
      throws ServletException, IOException {
    //協定設置1
    resp.setContentType("application/force-download");//用默許下載文件的運用法式下載

    String fileName="4.jpg";
    //假如文件名是中文--如:我的圖片.jpg
    //fileName=URLEncoder.encode(fileName,"utf-8");//把fileName編碼一下,假如不編碼,閱讀器中顯示的文件名會亂碼
    InputStream in=DownServlet.class.getClassLoader().getResourceAsStream(fileName);
    //協定設置2
    resp.setHeader("content-Disposition", "attachment;filename=\'"+fileName+"\'");//告知閱讀器以後下載的文件名


    //DownServlet.class的地位:"D:\apache-tomcat-7.0.30\webapps\helloWeb\WEB-INF\classes\cn\hncu\servlet"
    //圖片地點確當前地位:"D:\apache-tomcat-7.0.30\webapps\helloWeb\WEB-INF\classes"
    //FileInputStream fin=new FileInputStream(fileName);//弗成行
    OutputStream out=resp.getOutputStream();
    byte buf[]=new byte[512];
    int len=0;
//   while((len=fin.read(buf))!=-1){
//     out.write(buf, 0, len);
//   }
    while((len=in.read(buf))!=-1){
      out.write(buf, 0, len);
    }
  }


}

以上就是本文的全體內容,願望對年夜家的進修有所贊助,也願望年夜家多多支撐。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved