0

我有一个 asp.net MVC 应用程序,它接收来自小型 GPS 记录器的上传的 NMEA 跟踪文件。在某些情况下,记录器会将空 (0x0) 值注入到跟踪文件文本中。在将文件保存到服务器的文件系统进行处理之前,有没有办法从 HttpPostedFile 的 InputStream 中去除这些 0x0 字符?事实上,我只能找到第一个空字符,这就是保存在服务器上的所有文件。

谢谢,马修

4

2 回答 2

0

如果您使用 SaveAs,它应该写入零。您可以检查调试器中的 InputStream 内容吗(例如使用我上面的阅读方法)-您确定 HttpPostedFile 确实包含零-也就是说,您正确接收数据吗?您是否使用 ENCTYPE="multipart/form-data" 作为上传表单?

于 2009-11-02T21:36:26.203 回答
0

InputStream 是二进制的,不应该关心零。因此,问题在于将数据转换为文本 - 但您没有显示用于转换的代码。

您可以手动跳过/替换零:

var outstream = new StringStream();
var b;
while ((b = http.InputStream.ReadByte()) != -1)
  if (b != 0)
      outstream.Write(b);

现在你得到了没有零的流(当然,如果你愿意,你可以读块等)。

于 2009-11-02T19:22:50.957 回答