загрузка файла asp.net - PullRequest
       4

загрузка файла asp.net

0 голосов
/ 27 августа 2010

Я загружаю изображение с помощью элемента управления загрузкой файлов.Но это дает ошибку, метод SaveAs настроен так, чтобы требовать корневого пути, а путь '~ / Admin / ProductImages / images (5) .jpg' не является корневым.

string strBigServerPath = "~/ Admin / ProductImages / ";string strFileName = "";string ImageName = "";

        if (prodImg.HasFile)
        {
            strFileName = prodImg.PostedFile.FileName;             

            prodImg.PostedFile.SaveAs(imgPath + strFileName);


            string[] ext = strFileName.Split('.');
            string newProductFileName = ext[0] + "123";
            ImageName = newProductFileName + "." + ext[1];
            prodImg.PostedFile.SaveAs(imgPath + ImageName);


            using (System.Drawing.Image Img =
              System.Drawing.Image.FromFile(Server.MapPath(strBigServerPath) + newFileName))
            {
                if (Img.Width > 250 && Img.Height > 400)
                {
                    Size MainSize = new Size(250, 300);
                    using (System.Drawing.Image ImgThnail =
                           new Bitmap(Img, MainSize.Width, MainSize.Height))
                    {

                        ImgThnail.Save(Server.MapPath(strBigServerPath) + ImageName);

                    }
                }
                Img.Dispose();
            }

Ответы [ 4 ]

0 голосов
/ 27 августа 2010

это из-за того, что вы используете

prodImg.PostedFile.SaveAs(imgPath + strFileName);

когда это должно быть

prodImg.PostedFile.SaveAs(strBigServerPath + strFileName);
0 голосов
/ 27 августа 2010

Может быть, это поможет:

string filePath = System.IO.Path.Combine(Server.MapPath(imgPath), strFileName);
prodImg.PostedFile.SaveAs(filePath);
0 голосов
/ 27 августа 2010

При использовании этого:

prodImg.PostedFile.SaveAs(path);

путь к параметру должен быть абсолютным путем, который вы могли бы решить с помощью этого:

Server.MapPath(strBigServerPath + filename)
0 голосов
/ 27 августа 2010

Вы должны передать абсолютный путь к методу SaveAs(). Свойство HostingEnvironment.ApplicationPhysicalPath - удобный способ получить корневую папку вашего веб-приложения.

var path = HostingEnvironment.ApplicationPhysicalPath + imgPath + strFileName;
prodImg.PostedFile.SaveAs(path); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...