SpringMVC实现文件下载

来源:互联网 发布:立体视觉自测 知乎 编辑:程序博客网 时间:2024/06/06 00:42

SpringMVC实现文件下载及其简单


只需要在controller层里的方法设置返回值void ,加一个response的参数即可,设置ContentType 和Content-Disposition即可


以下是自己的一段小demo


package Controller;


import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;


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


import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;


@Controller
public class downloadContorller {


@RequestMapping(value={"download"},method={RequestMethod.GET})
public void download(HttpServletResponse response,
@RequestHeader String referer) throws IOException{
System.out.println(referer);
File file =  new File("D:/download.txt");
if(file.exists()){
response.setContentType("application/octet-stream");
response.addHeader("Content-Disposition", "attachment; filename=download.txt");
FileInputStream fileInputStream = new FileInputStream(file);
byte[] by  = new byte[fileInputStream.available()];
fileInputStream.read(by);
OutputStream outputStream = response.getOutputStream();
outputStream.write(by);
fileInputStream.close();
outputStream.close();
}
}
}


@RequestHeader String referer这个是要加不加都可以 加进去可以通过判断referer是不是为空或者是否你指定的参数值来防止盗链之类的事情

0 0
原创粉丝点击