private ServletContext context;
private String filename; private String mimeType; private InputStream inStream;
/**
* 下载公文
* @return
*/
public String download()throws Exception {
System.out.println(filename+"aaaaaaa");
mimeType = context.getMimeType(filename);
System.out.println(mimeType);
return SUCCESS;
}
public InputStream getInStream() {
inStream = context.getResourceAsStream("/upload/"+filename);
if(inStream == null){
System.out.println("下载");
}
return inStream;
}
public String getFilename() {
try {
return new String(filename.getBytes(), "ISO8859-1");
} catch (UnsupportedEncodingException e) {
System.out.println("fail");
return this.filename;
}
} public void setFilename(String filename) { try {
filename = new String(filename.getBytes("ISO-8859-1"), "UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
this.filename = filename;
}
<!-- 文件下载 -->
<action name="document2Action" class="documentAction" method="download" >
<!-- 初始文件名 -->
<result type="stream">
<param name="contentType">${mimeType};charset=ISO8859-1</param>
<param name="inputName">inStream</param>
<param name="contentDisposition">attachment;filename="${filename}"</param>
</result>
</action>只要是中文就会乱码!jbpm?ssh????.docaaaaaaa
application/vnd.ms-wordFTP 上的编码是UTF-8
项目的编码是GBK
页面编码是GB18030 这几三项不可以更改
private String filename; private String mimeType; private InputStream inStream;
/**
* 下载公文
* @return
*/
public String download()throws Exception {
System.out.println(filename+"aaaaaaa");
mimeType = context.getMimeType(filename);
System.out.println(mimeType);
return SUCCESS;
}
public InputStream getInStream() {
inStream = context.getResourceAsStream("/upload/"+filename);
if(inStream == null){
System.out.println("下载");
}
return inStream;
}
public String getFilename() {
try {
return new String(filename.getBytes(), "ISO8859-1");
} catch (UnsupportedEncodingException e) {
System.out.println("fail");
return this.filename;
}
} public void setFilename(String filename) { try {
filename = new String(filename.getBytes("ISO-8859-1"), "UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
this.filename = filename;
}
<!-- 文件下载 -->
<action name="document2Action" class="documentAction" method="download" >
<!-- 初始文件名 -->
<result type="stream">
<param name="contentType">${mimeType};charset=ISO8859-1</param>
<param name="inputName">inStream</param>
<param name="contentDisposition">attachment;filename="${filename}"</param>
</result>
</action>只要是中文就会乱码!jbpm?ssh????.docaaaaaaa
application/vnd.ms-wordFTP 上的编码是UTF-8
项目的编码是GBK
页面编码是GB18030 这几三项不可以更改
这样
要写成这样的吗
<param name="inputName">inStream</param>
<param name="contentDisposition">attachment;filename="${filename}"</param>
不要搞8859-1
我刚才要你改的地方是红色的位置
写成这样整体就传到action去了@java.net.URLEncoder@encode(11.sql, 'UTF-8')aaaaaaaaa
@java.net.URLEncoder@encode(11.sql, 'UTF-8')aaaaaaa没有编译
html标签是不执行OGNL 表达式的, 你这样写当然给你直接扔过去
<param name="inputName">inStream</param>
<param name="contentDisposition">attachment;filename="${filename}"</param>
是Struts2的配置文件!