您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
21_案例_文件下载_代码实现
发布时间:2022-08-22 22:19:32编辑:雪饮阅读()
首先我们在web目录下,假定有web.jpg和web.avi两个文件,则web下面的index.html中下载这两个文件的代码如:
<p><a href="./day15demo1?filename=web.jpg">download web.jpg</a></p>
<p><a href="./day15demo1?filename=web.avi">download web.avi</a></p>
然后咱们servlet实现如:
day15demo1.java:
import javax.imageio.ImageIO;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Random;
@WebServlet("/day15demo1")
public class day15demo1 extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String download_filename=request.getParameter("filename");
String realPath=request.getServletContext().getRealPath("/"+download_filename);
FileInputStream fis=new FileInputStream(realPath);
//据说输出前不加mime类型和content-disposition就会和之前一样,直接在网页上打开图片或者其它资源(被浏览器可以兼容支持才可以)
response.setHeader("content-type",request.getServletContext().getMimeType(download_filename));
response.setHeader("content-disposition","attachment;filename="+download_filename);
ServletOutputStream sos=response.getOutputStream();
//建立下载所需缓冲区 缓冲区大小自己决定哈
byte[] buff=new byte[1024*8];
int len=0;
//哥的理解赋值的结果就是所赋值的值本身
while((len=fis.read(buff))!=-1){
//每次从缓冲区中0的位置到缓冲区末尾的数据都写出到输出流(哥的理解,这样每次缓冲区都被重新清理了,在下轮循环体里就可以重新从输入流读取数据到缓冲区了)
sos.write(buff,0,len);
}
//写完后输入流要关闭(想象一下,一个打开文件的句柄),输出流可以不用关闭
fis.close();
//哥的理解赋值的结果就是所赋值的值本身
int a=1;
System.out.println("测试a被赋值于2:"+(a=2));
}
}
然后啊,访问浏览器如http://localhost:8080/youku_war_exploded/就可以看到上面两个下载文件的链接了,就可以分别下载图片或者视频了。
关键字词:
相关文章
-
无相关信息