如何使用Django rest fram上载具有nonascii文件名的文件

2024-10-01 04:48:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用的是Django Rest framework3.4.4和django1.10。 这是客户端的post请求:

$http.post(fileUrl, fd, {
    withCredentials: true,
    transformRequest: angular.identity,
    headers: {
        'Content-Type': undefined
    }
}).success(function(data) {
....

我在服务器端有:

^{pr2}$

用诸如食品.pdf文件已正确上载。但是,当filename包含亚美尼亚字母:ա.pdf时,我会得到UnicodeEncodeError错误: UnicodeEncodeErrorTraceback。在


Tags: djangoresttruehttp客户端pdfpostidentity
2条回答

这很可能意味着您没有设置系统语言变量。在

一些帮助运行Django projet的应用程序(例如supervisor)没有考虑默认系统。有时你需要自己设定。在

很可能你会失踪:

  • LANG=“C.UTF-8”
  • LCüALL=“C.UTF-8”
  • LCüLANG=“C.UTF-8”

例如。在

您还可以尝试在模型的save方法中使用slugify文件名。您可以找到如何从here重写model的save方法,其思想是在保存对象之前,将文件名.ı改为“ա.pdf”,slagify可能会将其更改为“w.pdf”。您还可以添加
# -*- coding: utf-8 -*- 在视图的顶部,如this example。在

相关问题 更多 >