public class Filetran extends HttpServlet {
@Id
@GeneratedValue
private static final long serialVersionUID = 1L;
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request,response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/plain;charset=UTF-8");
implAllAction i = new implAllAction();
List<Resource> list = i.selectfileapp();
if (list.size()!=0)
{
request.setAttribute("file", list);
request.getRequestDispatcher("/Download.jsp").forward(request, response);
}
}
}
h3>以下是所有文档</h3>
<h3>可随意点击下载:</h3>
<c:forEach items="${file}" var="fi">
<a href="<%=basePath %>/upload/${fi.url}" target="_blank">${fi.url}</a><br><br>
下载的文件命名记得加 .txt后缀名
看浏览器了,你这样直接访问文件路径,有的浏览器会下载,有的却不会;
要想随意下载,改成后台二进制下载,不要直接访问文件路径
后台二进制下载意思是io流去实现是吗 那样是只能指定某个文件下载吗
public class DownloadServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public DownloadServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
response.setContentType("text/plain;charset=UTF-8");
File file=new File("E:\\PLSQL.txt");
FileInputStream fis=new FileInputStream(file);
int size=fis.available();//文件大小(字节)
response.setHeader("Content-Disposition","attachment;filename=".concat(String.valueOf(file.getName())));
response.setHeader("CONTENT-LENGTH",new Integer(size).toString());
response.setDateHeader("Last-Modified",file.lastModified());
byte by[]=new byte[1024];
int a=0;
ServletOutputStream os=response.getOutputStream();
while((a=fis.read(by))!=-1)
{
System.out.println(a);
os.write(by,0,a);
}
os.flush();
os.close();
fis.close();
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
}
}