運用Sevlet實現上傳圖片至網頁。

    我們能運用PrintWriter實現在Sevlet上傳html代碼至瀏覽器,上傳圖片同理。

看代碼:

package cn.jxufe.test;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class DownImage extends HttpServlet {
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doPost(request, response);
	}
	
	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		
		String path = this.getServletContext().getRealPath("/WEB-INF/classes/7.jpg");
		InputStream input = new FileInputStream(path);
		OutputStream output = response.getOutputStream();
		byte[] b = new byte[64];
		int count = -1;
		while((count = input.read(b))!=-1){
			output.write(b, 0, count);
		}
		
		input.close();
		output.close();
	}

}

在這裏我們可以運用字節流將圖片上傳!


這裏的路徑是類似於:tomcat安裝目錄/webapps/項目名/WEB-INF/classes/文件名

當然這裏的圖片是放在src目錄下的


相對於tomcat服務器中webapps文件夾下的/classes文件夾下!

這裏看看文件夾結構和webapps的文件結構的對比:



WEB-INF裏面:


classes裏面:


可以看出圖片上面兩個是包名,包裏面是java文件對應的class文件!

    當給web項目配置了服務器,就會自動將web項目的文件夾下的WebRoot文件夾複製到tomcat安裝目錄下的webapps文件夾下,然後在複製文件夾的WEB-INF  文件夾下新建一個classes文件夾作爲servlet.java字節碼文件的目地文件夾,而ServletContext就類似於一整個項目的上下文,即整個WebRoot文件夾。




如果想用戶直接在這個網頁下載文件:可以加上

response.setHeader("content-disposition", "attachment;filename="+path);
response.setHeader("content-type", "image/jpeg");

兩行代碼!當訪問時就會直接出現下載選項!


發佈了41 篇原創文章 · 獲贊 22 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章