Неправильный параметр загрузки изображения ASP.NET.исключение - PullRequest
0 голосов
/ 05 января 2011

Я просто пытаюсь сохранить файл на диск, используя отправленный поток из jquery uploadify

Я также получаю параметр недействителен.

При добавлении в сообщение об ошибке, чтобы я мог сказатьгде он взорвался на производстве, я вижу, как он взорвался:

   var postedBitmap = new Bitmap(postedFileStream)

любая помощь будет наиболее ценной

public string SaveImageFile(Stream postedFileStream, string fileDirectory, string fileName, int imageWidth, int imageHeight)
{
    string result = "";
    string fullFilePath = Path.Combine(fileDirectory, fileName);
    string exhelp = "";

    if (!File.Exists(fullFilePath))
    {
        try
        {
            using (var postedBitmap = new Bitmap(postedFileStream))
            {
                exhelp += "got past bmp creation" + fullFilePath;

                using (var imageToSave = ImageHandler.ResizeImage(postedBitmap, imageWidth, imageHeight))
                {
                    exhelp += "got past resize";

                    if (!Directory.Exists(fileDirectory))
                    {
                        Directory.CreateDirectory(fileDirectory);
                    }

                    result = "Success";
                    postedBitmap.Dispose();
                    imageToSave.Save(fullFilePath, GetImageFormatForFile(fileName));
                }

                exhelp += "got past save";
            }
        }
        catch (Exception ex)
        {
            result = "Save Image File Failed " + ex.Message + ex.StackTrace;
            Global.SendExceptionEmail("Save Image File Failed " + exhelp, ex);
        }
    }

    return result;
}

Ответы [ 2 ]

0 голосов
/ 05 января 2011

Используйте конвертер изображений для загрузки из байтового массива:

ImageConverter imageConverter = new System.Drawing.ImageConverter();
Image image = imageConverter.ConvertFrom(byteArray) as Image;

http://forums.asp.net/t/1109959.aspx

0 голосов
/ 05 января 2011

Кажется, что ваш тип потока недопустим для объекта Bitmap, попробуйте скопировать поток в MemoryStream и передать MemoryStream в качестве параметра Bitmap

и удалить второе удаление как @Aliostad mentoined

как то так

public string SaveImageFile(Stream postedFileStream, string fileDirectory, string fileName, int imageWidth, int imageHeight)
        {
            string result = "";
            string fullFilePath = Path.Combine(fileDirectory, fileName);
            string exhelp = "";
            if (!File.Exists(fullFilePath))
            {
                try
                {
                    using(var memoryStream = new MemoryStream())
                    {
                       postedFileStream.CopyTo(memoryStream);
                       memoryStream.Position = 0;
                       using (var postedBitmap = new Bitmap(memoryStream))
                       {
                         .........
                        }

                    }
                }

                catch (Exception ex)

                {

                    result = "Save Image File Failed " + ex.Message + ex.StackTrace;

                    Global.SendExceptionEmail("Save Image File Failed " + exhelp, ex);

                }

            }



            return result;

        }
...