Adi tyagi Ответов: 2

Загрузить изображение на сервер


Привет ,
Я пытаюсь загрузить изображение на сервер, но получаю ошибку not a valid virtual path
я хочу загрузить изображение в папку media с помощью элемента управления fileuploader .
пожалуйста, проводите.
Цитата:
строка = объект HttpContext.Тока.Сервер.MapPath("http://printofast.com/media/");
строке filename = система.ИО.Путь.Комбайн (Сервер.MapPath(a, fileuploadPimage.имя файла);
fileuploadPimage.Сохранить как(именем);


Что я уже пробовал:

строка = объект HttpContext.Тока.Сервер.MapPath("http://printofast.com/media/");
строке filename = система.ИО.Путь.Комбайн (Сервер.MapPath(a, fileuploadPimage.имя файла);
fileuploadPimage.Сохранить как(именем);

---
// fileuploadPimage.SaveAs(Config.GetConfigValueAsString ("ProductImagesPath") + strfilename);
//fileuploadPimage.SaveAs (Сервер.MapPath(ConfigurationManager.AppSettings ["ImagePath"], strfilename));

2 Ответов

Рейтинг:
17

OriginalGriff

Сервер.Mappath преобразует виртуальный путь типа "~\resources\images\myPicture.jpg " в "правильный" квалифицированный путь, который понимает файловая система на сервере, работающем под управлением IIS, - где " ~ " - это корневая папка для вашего веб-сайта. Вы не можете передать ему URL-адрес и ожидать, что он переведет его в адрес файловой системы.
Если вы пытаетесь сохранить файл на своем веб-сайте, то попробуйте

fileupload.SaveAs(Path.Combine(Server.MapPath("~/Media"), fileuploadPimage.FileName);

Но имейте в виду, что очень часто разные пользователи имеют одно и то же имя для разных файлов. Я бы использовал БД для хранения имени файла, пользователя, который его загрузил, и столбца идентификатора Guid, а также для сохранения файла на диске, используя значение Guid в качестве фактического имени файла. Таким образом, разные пользователи могут безопасно иметь файлы с одинаковыми именами, и они не мешают друг другу.


Рейтинг:
1

Kasar_7

Попробуйте это сделать, чтобы вставить изображение в папку и сохранить путь к файлу в базе данных.

string filename = Path.GetFileName(FileUpload1.PostedFile.FileName);
        FileUpload1.SaveAs(Server.MapPath("~/Imgdata/" + filename));
        SqlCommand cmd = new SqlCommand("Insert into Image_data(ImgTitle,Imgdata)values(@ImgTitle,@Imgdata)",con);
        con.Open();
        cmd.Parameters.AddWithValue("@ImgTitle", TextBox1.Text);
        cmd.Parameters.AddWithValue("@Imgdata", "/imgdata/" + filename);
        cmd.ExecuteNonQuery();
        lblerror.ForeColor = Color.Green;
        lblerror.Text = "Insert Success";
        con.Close();