问题遇到的现象和发生背景
ueditor上传附件,到前端下载的时候如果以原文件名保存并且存在中文,就会报错404,找不到源文件
操作环境、软件版本等信息
ueditor1_4_3_3-utf8-jsp
我想要达到的结果
文件名存在中文的时候可以正常下载
ueditor上传附件,到前端下载的时候如果以原文件名保存并且存在中文,就会报错404,找不到源文件
ueditor1_4_3_3-utf8-jsp
文件名存在中文的时候可以正常下载
这个问题可能与服务器配置或者UEditor自身的设置有关。可能是服务器没有设置支持中文文件名的编码,也可能是UEditor的文件名编码设置不正确。
以下是一些可能的解决方法:
1.在UEditor中修改上传附件的配置,将encoding参数设置为UTF-8。在config.json文件中,找到"fileManagerAllowFiles"、"catcherAllowFiles"、"videoAllowFiles"、"imageManagerAllowFiles"、"fileAllowFiles"等参数,将其中的"中文"替换成对应的UTF-8编码。例如,"fileAllowFiles": [".doc", ".docx", ".xls", ".xlsx", ".ppt", ".pptx", ".pdf", ".zip", ".rar", ".gz", ".bz2", ".tar", ".htm", ".html", ".txt", ".mp3", ".mp4", ".wma", ".avi", ".wmv", ".swf"] 可以修改为 "fileAllowFiles": [".doc", ".docx", ".xls", ".xlsx", ".ppt", ".pptx", ".pdf", ".zip", ".rar", ".gz", ".bz2", ".tar", ".htm", ".html", ".txt", ".mp3", ".mp4", ".wma", ".avi", ".wmv", ".swf"]。
2.将服务器的编码设置为支持中文文件名的编码。例如,可以将服务器的编码设置为UTF-8,或者其他支持中文文件名的编码。
3.在文件下载的时候,将中文文件名进行URL编码。例如,可以使用JavaScript的encodeURI()方法将文件名进行编码。在下载文件时,前端可以通过JS的window.open()或location.href方法进行下载,如:window.open(encodeURI('/path/to/file/中文文件名.docx'))。
希望以上解决方案可以帮助到您。