ASP. NET: URL изображения правильный, но изображение не отображается - PullRequest
0 голосов
/ 27 февраля 2020

Я знаю, что об этом уже спрашивали, поскольку это вопрос ладьи ie, но другие ответы здесь не прояснили его для меня. Я загружаю файл, затем предоставляю предварительный просмотр. Событие нажатия моей кнопки загрузки выглядит следующим образом:

protected void UploadFile (object sender, EventArgs e) {

    string folderPath = Server.MapPath ("~/Uploads/");

    // If folder does not exist, create it.
    if (!Directory.Exists (folderPath))
        Directory.CreateDirectory (folderPath);         

    //Save the File to the Directory (Folder).
    FileUpload.SaveAs (folderPath + Path.GetFileName (FileUpload.FileName));

    //Display the Picture in Image control.
    imgItem.ImageUrl = folderPath + Path.GetFileName (FileUpload.FileName);
}

Загрузка работает нормально, но элемент управления изображением (imgItem) не отображает изображение. Когда я прослеживаю это, URL выглядит идеально. URL:

"C:\\MyStuff\\Source\\Inventory\\Inventory\\UserInterface\\Uploads\\sample.jpg"

Это должно сработать. Что в мире я делаю неправильно?

РЕДАКТИРОВАТЬ: я не чувствую, что это хорошее решение вообще, но я обнаружил, что программа работает, как ожидалось, если я изменю последнюю строку на это :

imgItem.ImageUrl = "~/Uploads/" + Path.GetFileName (FileUpload.FileName);

У кого-нибудь есть более чистое, менее жесткое решение?

Ответы [ 2 ]

0 голосов
/ 02 марта 2020

imgItem.ImageUrl = "~ / Uploads /" + Path.GetFileName (FileUpload.FileName);

0 голосов
/ 27 февраля 2020

Ну,

"C: \ MyStuff \ Source \ Inventory \ Inventory \ UserInterface \ Uploads \ sample.jpg"

на самом деле является файлом путь, а не URL. Поскольку вы используете слово «URL», я предполагаю, что вы создаете веб-сайт. Это означает, что вам нужен правильный URL (например, http (s): //yourdomain.com/Source/Inventory/..../sample.jpg)

Если вы не знаете, каков URL для путь к файлу, вы можете использовать виртуальную папку в IIS, чтобы сопоставить его. https://docs.kentico.com/k11/installation/deploying-kentico-to-a-live-server/creating-virtual-directories-and-application-pools-in-iis-7-5-and-7-0

...