Лучшая практика для сохранения изображений - PullRequest
0 голосов
/ 09 апреля 2009

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

My_HTMLInputFile.PostedFile.SaveAs(HttpContext.Current.Server.MapPath("~/photos\" & pta.FileName))

И функция, которая создает запись базы данных для того же изображения:

Public Function InsertPhoto() As Integer
        Dim pta As New GKPTableAdapters.tblPhotosTableAdapter
        Return pta.InsertPhoto(PhotoCaption, PhotoDescription, ("http://www.myURL.com/photos/" & FileName), IsDefault, IsPicture)
    End Function

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

Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 09 апреля 2009

Что-то, что я сразу заметил, заключается в том, что вы жестко кодируете ПОЛНЫЙ ПУТЬ к изображению.

Я бы просто сохранил имя изображения, а затем добавил бы относительный путь при отображении его в приложении

Если вы разрешаете своим пользователям удалять файлы через ваше приложение, вы должны удалить запись в базе данных, а затем удалить сам файл, используя File.Delete метод

0 голосов
/ 09 апреля 2009

Вы также можете посмотреть на генерацию вашего имени файла. Например, если в качестве имени файла вы используете хэш md5 для данных изображения, вы можете запретить людям загружать дубликаты изображений, а также вам не нужно придумывать способ создания «уникальных» имен для изображений.

Раскрытие каталога с фотографиями непосредственно в Интернете может быть плохой идеей, если там есть изображения, которые публика не должна видеть, и ваша политика именования предсказуема. Люди начнут угадывать URL-адреса изображений и наткнуться на то, что им запрещено видеть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...