运用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的文件结构的对比:



扫描二维码关注公众号,回复: 2462634 查看本文章

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");

两行代码!当访问时就会直接出现下载选项!


猜你喜欢

转载自blog.csdn.net/qq_38016931/article/details/79921667
今日推荐