首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java相关 >

java上载文件有关问题

2012-09-19 
java下载文件问题用java流下载txt文件,通过report_download.action请求去下载弹出保存框中文件名是report_

java下载文件问题
用java流下载txt文件,通过report_download.action请求去下载弹出保存框中文件名是report_download.action,且能打开是在ie中直接打开,不能进行保存是什么原因???

[解决办法]
五码无真相。
[解决办法]
我做过类似的,你配置有问题吧,我给你找找代码
[解决办法]

Java code
response.setContentType("text/plain");response.setHeader("Content-Disposition", "attachment; filename=\"" + URLEncoder.encode(fileName, "UTF8").replace("+", "%20") + "\"");
[解决办法]
"UTF8"->"UTF-8"
[解决办法]
既然能出来文件下载框,怎么会不能打开或者保存呢。。。

出来框后好像就是windows干的事了吧。
[解决办法]
这是下载请求action,前台传过来文件名和路径即可,
Java code
package com.oemp.audi.action;import java.io.File;import java.io.IOException;import java.io.InputStream;import java.io.UnsupportedEncodingException;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.struts2.ServletActionContext;import org.springframework.context.annotation.Scope;import org.springframework.stereotype.Controller;import com.oemp.frame.action.BaseAction;import com.opensymphony.xwork2.ActionContext;@Scope("prototype")@Controller("audi.action.DownloadAction")public class DownloadAction extends BaseAction {    private String fileName;// 文件名    private String filePath;// 文件路径    public String getFilePath() {    return filePath;    }    public void setFilePath(String filePath) {    this.filePath = filePath;    }    public String getFileName() {    return fileName;    }    public void setFileName(String fileName) {    this.fileName = fileName;    }    private String filenameInCN;    public String getFilenameInCN() {    return filenameInCN;    }    public void setFilenameInCN(String filenameInCN) {    try {        this.filenameInCN = new String(filenameInCN.getBytes(),            "ISO-8859-1");    } catch (Exception e) {        e.printStackTrace();    }    }    /**     * 返回与下载的文件流     *      * @return     * @throws Exception     */    public InputStream getDownloadFile() throws Exception {    this.setFilenameInCN(fileName);    return ServletActionContext.getServletContext().getResourceAsStream(        filePath + fileName);    }    /**     * 下载文件之前执行的方法(本方法检测了文件是否存在)     */    public String execute() {    try {        fileName = new String(fileName.getBytes("iso-8859-1"), "utf-8");    } catch (UnsupportedEncodingException e) {        // TODO Auto-generated catch block        e.printStackTrace();    }    HttpServletRequest request = ServletActionContext.getRequest();    HttpServletResponse response = ServletActionContext.getResponse();    String path = request.getRealPath(filePath + fileName);    File file = new File(path);    if (!file.exists()) {        return super            .renderHtmlGBK("<script> alert('文件失效了!可能原因是:文件被移动位置了,或者文件名发生了变化!');history.go(-1);</script>");    }    return SUCCESS;    }} 

热点排行