We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
内容读取
upload 源码 (增加了 log) https://www.npmjs.com/package/@midwayjs/upload?activeTab=code
当文件的内容有连续的两个换行时,就会出现问题。比如文件的内容是 a(换行)(换行)b 。那么结果是: 也就是,最后的 data 只有 a 。
const headSeparator = Buffer.from('\r\n\r\n'); headSeparator是分割头部和内容的。但,如果内容中,也有 \r\n\r\n 即连续的两个换行,那么也会被分割。则就导致出现了问题。 当 mode 是 file 时,是没有问题的,这是 mode 为 file 时执行的 const [headerBuf, data] = (0, exports.bufferSplit)(buf, headSeparator, 2); 。最后的参数 2 , 使得 split 只分割为2个,也就是 data 就是 header 之后的部分。因此不会有问题。 如果 stream 的部分代码也在分割 header 和 data 时加上参数2 ,确实能解决问题。不加上此参数是什么原因呢?
const headSeparator = Buffer.from('\r\n\r\n');
\r\n\r\n
const [headerBuf, data] = (0, exports.bufferSplit)(buf, headSeparator, 2);
async upload(@Files() files, @Fields() fileds){} 也就是,如果 fomdata 里即有文件,也有其他,比如 name=jack 。那么如果 name 先添加到 formdata ,那么 fileds 中就会有 name ,如果是文件先添加到 formdata ,那么 fileds 为空对象。
async upload(@Files() files, @Fields() fileds){}
The text was updated successfully, but these errors were encountered:
No branches or pull requests
简单贴点代码
内容读取
upload 源码 (增加了 log)
https://www.npmjs.com/package/@midwayjs/upload?activeTab=code
错误情况
当文件的内容有连续的两个换行时,就会出现问题。比如文件的内容是 a(换行)(换行)b 。那么结果是:
也就是,最后的 data 只有 a 。
个人拙见
const headSeparator = Buffer.from('\r\n\r\n');
headSeparator是分割头部和内容的。但,如果内容中,也有\r\n\r\n
即连续的两个换行,那么也会被分割。则就导致出现了问题。当 mode 是 file 时,是没有问题的,这是 mode 为 file 时执行的
const [headerBuf, data] = (0, exports.bufferSplit)(buf, headSeparator, 2);
。最后的参数 2 , 使得 split 只分割为2个,也就是 data 就是 header 之后的部分。因此不会有问题。如果 stream 的部分代码也在分割 header 和 data 时加上参数2 ,确实能解决问题。不加上此参数是什么原因呢?
其他疑问 ( 有没有大佬解释一下咧 )
The text was updated successfully, but these errors were encountered: