什么是空字节和多部分/形式的后果

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

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

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

这听起来像是Django中的一个bug吗?还是有一些我不完全理解的multipart / form-data的方面? 我是否需要设置某种传输编码,以便Django不会挂在空字符上?


不,不需要传输编码(或者浏览器曾经使用过)的表单数据。 在多部分/表单数据值中包含50个空字节是非常有效的......实际上,大多数二进制文件包含大量空值,这种情况应该经常发生,而不是文件上传!

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

链接地址: http://www.djcxy.com/p/22205.html

上一篇: What are the ramifications of null bytes and multipart/form

下一篇: data" is not supported to send simple text?