Servlet下载文件文件名问题

问题描述

Servlet下载文件文件名问题

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
FileDBO fileDBO = new FileDBO();
String fileID = request.getParameter("fileId");

    FileInfor file = fileDBO.getSingleFile(Integer.parseInt(fileID));
    InputStream in = new FileInputStream(new File(file.getFile_path()));
    System.out.println(file.getFile_name());

    response.setContentType("application/x-msdownload");
    response.setHeader("Content-Dispostion", "attachment;filename=" + file.getFile_name());
    response.setHeader("Content-Dispostion", "attachment;filename=abd.jpg")

    OutputStream out = response.getOutputStream();
    byte []buffer = new byte[1024];
    int len = 0;
    while((len = in.read(buffer)) != -1){
        out.write(buffer, 0, len);
    }

    in.close();
    out.close();
}

在用servlet进行下载文件处理的时候不能正常设置下载的文件名,在浏览器上下载的文件的文件名是servlet的类名或者是url-patten,无论response.setHeader怎么设置都不起作用

解决方案

文件下载中文文件名问题
Servlet实现文件下载以及遇到的问题
文件下载时 文件名乱码问题

解决方案二:

你的文件名称的key写错了,是大写的,修正如下试试:

  response.setHeader("Content-Disposition", "attachment;fileName="+fileName);
时间: 2024-10-28 21:56:34

Servlet下载文件文件名问题的相关文章

Servlet 下载文件

项目中使用struts2 下载文件,使用手机浏览器有问题,老是报 Java.lang.IllegalStateException: Cannot call sendError() after the response has been committed 没办法了,就使用servlet下载apk文件. servlet类如下: Java代码   package com.shop.jn.web.servlet;      import java.io.File;   import java.io.I

android 下载时文件名是中文和空格会报错解决方案_Android

项目中遇到了下载文件文件名是中文而且还有空格如果不对连接进行处理下载就会报错要想解决这个问题只需对你的url 进行编码然后替换空格用编码表示 复制代码 代码如下: //对路径进行编码 然后替换路径中所有空格 编码之后空格变成"+"而空格的编码表示是"%20" 所以将所有的"+"替换成"%20"就可以了 复制代码 代码如下: url = URLEncoder.encode(urlStr,"utf-8").re

android 下载时文件名是中文和空格会报错解决方案

项目中遇到了下载文件文件名是中文而且还有空格如果不对连接进行处理下载就会报错要想解决这个问题只需对你的url 进行编码然后替换空格用编码表示 复制代码 代码如下: //对路径进行编码 然后替换路径中所有空格 编码之后空格变成"+"而空格的编码表示是"%20" 所以将所有的"+"替换成"%20"就可以了 复制代码 代码如下: url = URLEncoder.encode(urlStr,"utf-8").re

Servlet中的上传下载文件

一.文件上传 文件的上传也是基于表单来完成的,表单中的file元素可以自动生成一个文本框和一个按钮,文本框可以输入本地文件名或路径,点击按钮则可以打开一个文件选择框让用户选中本地文件.需要注意的是在文件上传时还必须设置表单的enctype属性,并将它的值设置为multipart/form-data. upload.jsp   <FORM METHOD="POST" ENCTYPE="multipart/form-data"    ACTION="Sm

使用Servlet实现下载文件的功能

使用Servlet实现下载文件的功能 在前台有一个下载链接,比如   <a href="DownLoadServlet">下载</a> <br/>   使用Servlet实现下载:     import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.net.URLEncoder; import javax.servlet.Se

jsp+servlet实现文件的上传和下载

实现文件的上传和下载首先需要理解几个知识,这样才可以很好的完成文件的上传和下载: (1):上传文件是上传到服务器上,而保存到数据库是文件名 (2):上传文件是以文件转换为二进制流的形式上传的 (3): enctype="multipart/form-data"需要设置在form里面,否则无法提交文件 (4):必须在servlet3.0里面加上这句话,@MultipartConfig  1:首先创建一个前台页面upload.jsp,源码如下所示: 1 <%@ page langua

下载文件的servlet(很简单的)

servlet|下载 import java.io.*;import java.util.*;import javax.servlet.*;import javax.servlet.http.*; public class  Download extends HttpServlet{    public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletE

php做下载文件的实现代码及文件名中乱码解决方法

最近有人问我做下载文件的方法,对于php方法如下: 复制代码 代码如下: <?php header("Content-Type: application/force-download"); header("Content-Disposition: attachment; filename=ins.jpg"); readfile("imgs/test_Zoom.jpg"); ?> 第一行代码是强制下载: 第二行代码是给下载的内容指定一个

php做下载文件的实现代码及文件名中乱码解决方法_php技巧

最近有人问我做下载文件的方法,对于php方法如下: 复制代码 代码如下: <?php header("Content-Type: application/force-download"); header("Content-Disposition: attachment; filename=ins.jpg"); readfile("imgs/test_Zoom.jpg"); ?> 第一行代码是强制下载: 第二行代码是给下载的内容指定一个