2012-06-08 5 views
0

У меня очень странная проблема с моим методом сохранения изображений. Во-первых, здесь метод:Поврежденные изображения после загрузки

 public static void uploadImageToServer(string savePath, HttpPostedFile imageToUpload, bool overwrite) 
     { 
       byte[] myData = new Byte[imageToUpload.ContentLength]; 
       imageToUpload.InputStream.Read(myData, 0, imageToUpload.ContentLength); 

       FileStream newFile = new FileStream(savePath, FileMode.Create); 
       newFile.Write(myData, 0, myData.Length); 
       newFile.Close(); 
} 

Как вы можете видеть из входных параметров, этот метод работает в связке с контролем FileUpload. Теперь я использую этот метод с двух страниц, у которых есть элемент управления FileUpload. На одной странице изображение загружает файл, на другой странице - поврежденный файл.

Я действительно в недоумении относительно того, почему изображение повреждено. Я использую одно и то же изображение, тот же метод и тот же входной контроль.

Есть ли способ отлаживать это?

+2

Почему вы не используете метод SaveAs? 'imageToUpload.SaveAs (savePath);' – alexn

ответ

2

украдет ответ AlexN в < _ <

Вы чрезмерно усложнять ее. Просто используйте встроенный FileUpload::SaveAs(save_path), который предоставляется вам.

Вы можете использовать метод Server.MapPath(), чтобы помочь вам получить динамический путь к корневому каталогу, перейти оттуда и добавить к нему имя файла.
Не знаете, почему вы получаете эту ошибку. Мое лучшее предположение заключается в том, что ваш savePath сломан (или добавлено к нему имя файла/расширение), или байты не читаются/записываются идеально. Во всяком случае, вы не должны получать эту ошибку, используя описанный мной метод (учитывая, что вы не испортите расширение файла :).

+0

Спасибо, не знал об этом! Я нашел исходный код здесь http://www.codeproject.com/Articles/1956/NET-Image-Uploading. – TheGateKeeper

Смежные вопросы