我們能運用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");
兩行代碼!當訪問時就會直接出現下載選項!