私はDjango Rest Framework 3.4.4とDjango 1.10を使用しています。django restフレームワークを使用して非asciiファイル名でファイルをアップロードする方法
$http.post(fileUrl, fd, {
withCredentials: true,
transformRequest: angular.identity,
headers: {
'Content-Type': undefined
}
}).success(function(data) {
....
サーバ側で私は、次のしている:そのようなファイルが正常にアップロードされfoo.pdfとしてfilnameで
def post(self, request, format=None):
file_ids = []
file_list = request.FILES.getlist('file_path')
for file in file_list:
serializer = FileSerializer(data={'file_path': file})
if serializer.is_valid():
serializer.save()
....
これは、クライアント側のポスト要求があります。しかし、ファイル名にアルメニア文字:ա。pdfが含まれていると、UnicodeEncodeErrorエラーが発生します。 UnicodeEncodeError,Traceback。
質問にトレースバックを投稿する必要があります(外部サイトへのリンクが古くなります)。 djangoエラーページにコピー&ペースト可能なトレースバックを取得するためのボタンがあります。あなたの問題に関しては、ファイル名をサーバのファイルシステムに保存しようとする前に、そのファイル名をサニタイズする必要があります。 – thebjorn
私は自分の質問に直接画像を埋め込むほどの評判はないので、代わりにsteckoverflowシステムにリンクが含まれています。確かに、 "コピーアンドペースト可能なトレースバック"は正しい方法です。私はそれをできるだけ早く質問に入れます。入力いただきありがとうございます。 –