当我在带有西里尔字母名称的CMS文件中上传时,西里尔符号就会消失。 例如:文件名“мой_файл.txt”只是“txt”而没有“мой_файл”。 文件名具有windows-1251编码。
Firebug显示:
POST /admin/projects/Project/EditForm/field/Project/item/6/ItemEditForm/field/Projects/upload HTTP/1.1
Host: silver.rivreg.ru
User-Agent: Mozilla/5.0 (Windows NT 6.3; rv:46.0) Gecko/20100101 Firefox/46.0
Accept: application/json, text/javascript, */*; q=0.01
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
X-Requested-With: XMLHttpRequest
Referer: http://silver.rivreg.ru/admin/projects/Project/EditForm/field/Project/item/6/edit
Content-Length: 377
Content-Type: multipart/form-data; boundary=---
在帖子标签显示:
Content-Disposition: form-data; name="SecurityID"
4754dec1aad707dd63e8cc58c8e469d0bc149425
-----------------------------81762142719766
Content-Disposition: form-data; name="Projects[Uploads][]"; filename="мой_Ñайл.txt"**
Content-Type: text/plain
ïîëïîïîïîïîïîïîîûûûûûûû
-----------------------------81762142719766--
请给我任何帮助。
答案 0 :(得分:1)
看看FileNameFilter
,因为这是"清理"的逻辑。传入/上传的文件名。
具体看看它的$default_replacements
private(config)静态。因为它是私有静态,所以可以在userland(自定义)YML配置中进行修改。
相关专栏甚至为您评论:
// remove non-ASCII chars, only allow alphanumeric plus dash and dot
在您自己的自定义YML配置中使用适合您系统可接受的字符范围的内容覆盖此内容。