0

サードパーティから、印刷可能なASCII文字のみを含むはずのフラットファイルが送信されています。0x00ただし、ファイルの途中に約50バイト の文字列があることがわかりました。

ファイルをWebアプリケーションにアップロードできるようにしたいのですが、Djangoがmultipart/form-dataのヌル文字を好まないように見えることがわかりました。ヌル文字を削除すると、アップロードは成功します。(申し訳ありませんが、現時点ではスタックトレースを利用できませんが、必要に応じてスタックトレースを作成します)

ファイルを前処理してヌル文字を削除したり、サードパーティと協力してファイルジェネレータを修正したりすることはできますが、このような神秘的な問題を残したくありません。

これはDjangoのバグのように聞こえますか、それとも私が完全に理解していないマルチパート/フォームデータのいくつかの側面がありますか?Djangoがヌル文字に引っ掛からないように、ある種の転送エンコーディングを設定する必要がありますか?

4

1 に答える 1

0

いいえ、フォームデータに転送エンコーディングは必要ありません(またはブラウザで使用されることはありません)。multipart / form-data値に50のnullバイトの実行を含めることは完全に有効です...実際、ほとんどのバイナリファイルには多くのnullが含まれているため、ファイルのアップロードでは発生しない状況が頻繁に発生します。

それが本当にDjangoのバグなのか、それとも他に何かが起こっていないのか疑問に思います。そのスタックトレースを作成しましょう!

于 2009-12-17T17:41:55.170 に答える