struts2 文件下载 中文乱码问题
struts2设置:<!--文件下载Action--><actionname="download"class="action.MyDownload"><paramname...
struts2设置:
<!-- 文件下载 Action -->
<action name="download" class="action.MyDownload">
<param name="inputPath">\save\模版.doc</param>
<result name="success" type="stream">
<!--<param name="contentType">application/octet-stream</param> -->
<param name="allowedExtensions">doc,docx;charset=UTF-8</param>
<param name="inputName">targetFile</param>
<!-- inline(内联)attachment(附件形式)前者直接打开,后者对话框 filename="模版.doc"-->
<param name="contentDisposition">attachment;filename="模版.doc"</param>
<param name="bufferSize">2048</param>
</result>
</action>
Action设置:
package action;
import java.io.InputStream;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;
@SuppressWarnings("serial")
public class MyDownload extends ActionSupport {
private String inputPath;
public void setInputPath(String inputPath) {
this.inputPath = inputPath;
}
public InputStream getTargetFile() throws Exception {
return ServletActionContext.getServletContext().getResourceAsStream(
inputPath);
}
public String execute() throws Exception {
return SUCCESS;
}
}
网上找了很多例子 不行啊 展开
<!-- 文件下载 Action -->
<action name="download" class="action.MyDownload">
<param name="inputPath">\save\模版.doc</param>
<result name="success" type="stream">
<!--<param name="contentType">application/octet-stream</param> -->
<param name="allowedExtensions">doc,docx;charset=UTF-8</param>
<param name="inputName">targetFile</param>
<!-- inline(内联)attachment(附件形式)前者直接打开,后者对话框 filename="模版.doc"-->
<param name="contentDisposition">attachment;filename="模版.doc"</param>
<param name="bufferSize">2048</param>
</result>
</action>
Action设置:
package action;
import java.io.InputStream;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;
@SuppressWarnings("serial")
public class MyDownload extends ActionSupport {
private String inputPath;
public void setInputPath(String inputPath) {
this.inputPath = inputPath;
}
public InputStream getTargetFile() throws Exception {
return ServletActionContext.getServletContext().getResourceAsStream(
inputPath);
}
public String execute() throws Exception {
return SUCCESS;
}
}
网上找了很多例子 不行啊 展开
3个回答
展开全部
我是这样解决的,希望可以帮助到你.
try {
//字符串加密文件名上传
URLDecoder.decode("加密字符串","UTF-8"游带);
//字符串解密文件名桥磨辩下载
URLEncoder.encode("解密字符串", "UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
不过这个在IE下还行敏缺得通,在firefox下还是有点问题.望楼主参考参考.
希望可以帮助到你.
try {
//字符串加密文件名上传
URLDecoder.decode("加密字符串","UTF-8"游带);
//字符串解密文件名桥磨辩下载
URLEncoder.encode("解密字符串", "UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
不过这个在IE下还行敏缺得通,在firefox下还是有点问题.望楼主参考参考.
希望可以帮助到你.
追问
您好,我需要把这段代码加到哪里?struts新手,见谅。。
追答
//字符串加密文件名上传
URLDecoder.decode("加密字符串","UTF-8");
这一段请放在上传文件后保存的文件名称,或存储到资料库中的文件名
//字符串解密文件名下载
URLEncoder.encode("解密字符串", "UTF-8");
这一段请放在点击下载按钮后下载的文件名称(也就是把先前加密的文件名解密)
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你在csdn里面搜索下struts2上传下载
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询