Member 12824529 Ответов: 1

Imagebutton не видит изображений в папке Загрузки, показывает пустые изображения


В моем ASP.NET проект WebForms, у меня есть папка под названием "Uploads", которая содержит несколько файлов фотоизображений .jpg. Если я щелкну по нему правой кнопкой мыши и выберу "открыть папку в Проводнике", он покажет мои пять файлов изображений, перечисленных в списке, и каждый из них имеет расширение". jpg".

У меня есть элемент управления ImageButton на форме.
Я выбираю элемент управления ImageButton и в окне свойств.
Я нажимаю кнопку с многоточием для ImageUrl,
Я выбираю папку 'Uploads'.
Независимо от того, выбираю ли я "файлы изображений(*gif,*jpg,*jpg,*bmp,*wmf,*. png)" или даже "все файлы (*.*)", в любом случае он показывает пустой список файлов, как будто в папке нет файлов.

В результате, когда я назначаю полный путь к файлу ImageButton1.ImageUrl, изображение не появляется, но остается пустым. Но опять же, даже во время разработки ImageButton вообще не видит эти файлы изображений. Как я могу это исправить?

Я позаботился о том, чтобы статическое содержимое вариант выбирается в Службу www общие характеристики \ протокол HTTP.

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

HttpPostedFile postedFile = FileUpload1.PostedFile;
string fileName = Path.GetFileName(postedFile.FileName);
string fileExtension = Path.GetExtension(fileName);
int fileSize = postedFile.ContentLength;
string[] exts = { ".jpg", ".bmp", ".gif", ".png" };

if (exts.Contains(fileExtension.ToLower()))
{
    var dirUploads = "~/Uploads/";
    var virtualPath = dirUploads + fileName;
    var filePath = System.Web.HttpContext.Current.Server.MapPath(virtualPath);
    if (System.IO.File.Exists(filePath))
    {
        System.IO.File.Delete(filePath);
    }
    postedFile.SaveAs(filePath.ToString());
    ImageButton1.ImageUrl = filePath.ToString();
}

1 Ответов

Рейтинг:
5

F-ES Sitecore

Url-адрес изображения будет представлять собой расположение изображения на диске сервера, к которому клиент, очевидно, не может получить доступ. Url-адрес изображения должен быть http-путем к изображению на сервере. Попробуйте вместо этого установить ImageUrl в virtualPath, вам может понадобиться что-то вроде

ImageButton1.ImageUrl = VirtualPathUtility.ToAbsolute(virtualPath);