Как получить нулевые символы в файле, размещенном в форме asp.net? - PullRequest
0 голосов
/ 02 ноября 2009

У меня есть приложение asp.net MVC, которое принимает загруженные файлы треков NMEA с небольших GPS-регистраторов. В некоторых случаях регистраторы вводят нулевые (0x0) значения в текст файла дорожки. Есть ли способ вырезать эти символы 0x0 из InputStream HttpPostedFile перед сохранением файла в файловой системе сервера для обработки? На самом деле, я могу получить только первый нулевой символ, и это весь файл, который сохраняется на сервере.

Спасибо, Мэтью

Ответы [ 2 ]

0 голосов
/ 03 ноября 2009

Если вы используете SaveAs, он должен писать нули. Можете ли вы проверить содержимое InputStream в отладчике (например, используя мой метод чтения выше) - вы уверены, что HttpPostedFile содержит нули - то есть, что вы получаете данные правильно? Используете ли вы ENCTYPE = "multipart / form-data" для формы загрузки?

0 голосов
/ 02 ноября 2009

InputStream является двоичным и не должен заботиться о нулях. Итак, проблема в преобразовании данных в текст, но вы не показали код, который вы используете для преобразования.

Вы можете вручную пропустить / заменить нули:

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

и теперь вы получили поток без нулей (конечно, вы можете читать в блоках и т. Д., Если хотите).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...