Сохранить файл из байтового массива на пути к карте сервера - PullRequest
1 голос
/ 16 февраля 2011

Я хочу сохранить файл PDF из байтового массива и хочу сохранить этот файл на моем пути к карте сервера.

Ниже приведен мой фрагмент кода. Это не дает ни ошибок, ни сохранения файла. Вы можете исправить мой синтаксис, если он неправильный, или помочь мне, сославшись на другие фрагменты кода.

byte[] data = (byte[])listDataset.Tables[0].Rows[0][0];

System.IO.FileStream file = System.IO.File.Create(Server.MapPath(".\\TmpImages\\"+hfFileName+".pdf "));

file.Write(data, 0, data.Length);
file.Close();

Ответы [ 3 ]

1 голос
/ 16 февраля 2011

Еще один «не ответ», но, возможно, полезно исключить некоторые вещи. Я пытался

  byte[] data = new byte[] { 12, 14, 63, 45, 3 };

  System.IO.FileStream file = System.IO.File.Create(HttpContext.Current.Server.MapPath(".\\imageLibrary\\test.pdf "));

  file.Write(data, 0, data.Length);
  file.Close();

и все работало нормально (был создан test.pdf). Я думал, что пробел в конце пути к файлу может вызывать проблемы, но это не так.

Вы уверены, что не заключили этот блок в блок try {} catch {}, который может поглотить путь или ошибку разрешений? Вы пытались установить точку останова в строке file.Close (), чтобы убедиться, что она зашла так далеко?

1 голос
/ 16 февраля 2011

Это может быть проблема с разрешениями ... Учетная запись, под которой работает ASP.net, должна иметь права на запись в целевой каталог.

0 голосов
/ 16 февраля 2011
Server.MapPath(".\\TmpImages\\"+hfFileName+".pdf ")

Вы уверены, что путь - это то, что вы ожидаете?Если вы уверены, что не получаете исключение (т.е. разрешения), то я бы порекомендовал отладку и посмотреть, какое значение возвращает вызов Server.MapPath.

Возможно, файл записывается,но в другом месте, чем вы ожидали.

"Если [аргумент MapPath] не начинается с косой черты, метод MapPath возвращает путь относительно каталога обрабатываемого файла .asp."http://msdn.microsoft.com/en-us/library/ms524632%28v=vs.90%29.aspx

...