我通过java servlet收到了一个包含多部分mime的附件。可以这样处理:
InputStream inputStream = request.getInputStream();
byte[] data = IOUtils.toByteArray(inputStream);
File file = new File("/usr/local/user/message.txt");
FileOutputStream fos = new FileOutputStream(file);
fos.write(data);
fos.close();
在multipart mime中,二进制代码给我提供了损坏的数据。有人知道为什么会发生这种情况吗?我将二进制数据复制到文件中,并将文件扩展名更改为适当的图像扩展名,但是我得到了一个损坏的图像。比较message.txt和.snoop文件的十六进制数据表明,十六进制数据存在轻微差异,导致失真。ASCII数据没有任何更改。谢谢。
就像你可以看到图片在开始时看起来正确,但是它开始变得奇怪,因为十六进制值是错误的。例如:客户端的06 04 04 04 04 04 06 04 04 06 0a变成了上述操作后的06 04 04 04 04 04 06 04 04 06 0D,这就是失真。
.txt
)。请阅读WinSCP网站上的此FAQ。编辑:使用二进制模式进行传输,看看是否有区别。 - Vineet Reynolds