以非英语语言显示文件名,以供Struts2动态下载文件

博姆塔瓦特·普林苏特

我在Struts2中开发了一个动态文件下载程序,该程序允许用户下载存储在数据库中的文件。

我的问题是,如果文件名包含非英语字符(在本例中为“泰国字符”)。文件名将显示为URL。

这是我的JSP

<s:url id="urlTag" action="downloadAmsFile">
     <s:param name="index">1</s:param>
</s:url>
<s:a href="%{urlTag}">Download</s:a>

这是我的结果参数的Java代码

setFilename(assetObj.getFileName());
setMimeType(assetObj.getContentType());
setInputStream(new ByteArrayInputStream(assetObj.getBytes()));

这是我的行动

<action name="downloadAmsFile" class="com.title.ams.action.FileUploadAllAction" method="downloadAmsFile">   
    <result name="success" type="stream">
        <param name="contentType">%{contentType}</param>
        <param name="inputName">fileInputStream</param>
        <param name="contentDisposition">attachment;filename=%{contentDisposition}</param>
        <param name="bufferSize">1024</param>       
    </result>               
</action>

如果我使用非英语语言下载文件,则文件名将为“ downloadAmsFile.action?index = 1”。

博姆塔瓦特·普林苏特

找到了!我必须将文件名转换为unicode。

String result = "";

    if (text != null) {
        StringBuilder ascii = new StringBuilder(text);
        for(int i = 0; i < text.length(); i++) {
            int code = (int)text.charAt(i);
            if ((0xE01<=code) && (code <= 0xE5B )){
                ascii.setCharAt( i, (char)(code - 0xD60));
            }
        }
       result = ascii.toString();
    }
    return result;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在提示下使用Struts2下载文件

来自分类Dev

在Struts2中上传多个文件之前如何显示选定的文件名?

来自分类Dev

下载文件,文件名

来自分类Dev

下载文件,文件名

来自分类Dev

如何减少显示文件名?

来自分类Dev

上传后显示文件名

来自分类Dev

从NSURLSession下载文件名

来自分类Dev

在Struts 2中下载文件

来自分类Dev

在Struts 2中下载文件

来自分类Dev

使用struts2和Ajax下载文件时如何放置进度栏

来自分类Dev

Struts2中的文件下载问题

来自分类Dev

如何在文件传输中显示文件名?

来自分类Dev

输入类型[文件]不显示文件名。AngularJS

来自分类Dev

更改“选择文件”按钮,并继续显示文件名

来自分类Dev

转义和输入文件名以供PHP下载

来自分类Dev

R Shiny中DataTable按钮扩展中下载文件名的动态命名

来自分类Dev

下载文件时如何设置文件名?

来自分类Dev

如何下载文件名已更改的文件?

来自分类Dev

下载文件时不知道文件名

来自分类Dev

使用PowerShell读取下载文件的文件名

来自分类Dev

如何显示文件夹中的pdf文件以供codeigniter下载

来自分类Dev

为什么JSHint不显示文件名?

来自分类Dev

如何使用Awk从列显示文件名?

来自分类Dev

在标签文本中显示文件名

来自分类Dev

使用Directory.EnumerateFiles显示文件名

来自分类Dev

使用Shiny R获取和显示文件名

来自分类Dev

使用python可读显示文件名

来自分类Dev

上传前如何显示文件名?

来自分类Dev

显示文件名,后跟内容,无需交互