null字节和multipart / form-data的后果是什么?

时间:2009-12-17 16:45:48

标签: django http multipartform-data null-character

第三方向我们发送一个平面文件,该文件应该包含专门的可打印ASCII字符。但是,我们发现文件中间有一个大约50 0x00个字节的字符串。

我们希望能够将文件上传到我们的Web应用程序,但我发现Django似乎不喜欢multipart / form-data中的空字符。如果我删除空字符,则上传成功。 (对不起,我目前没有可用的堆栈跟踪,但如果需要可以生成一个)

我们可以预先处理文件以删除空字符和/或与我们的第三方合作修复他们的文件生成器,但我不想留下这样的神秘问题。

这听起来像是Django中的错误还是我不完全理解的多部分/表单数据的某些方面?我是否需要设置某种转移编码,以便Django不会挂在空字符上?

1 个答案:

答案 0 :(得分:0)

不,表单数据不需要(或浏览器曾经使用过)编码传输编码。在multipart / form-data值中包含50个空字节的运行是完全有效的...确实,假设大多数二进制文件包含很多空值,那么这种情况应该经常发生,而不是文件上传!

这让我怀疑它是否真的是一个Django错误,或者是否还没有其他事情发生。我们有堆栈跟踪!