У меня есть простая форма, которую пользователи могут использовать для загрузки изображений. Он имеет кнопку предварительного просмотра, поэтому, когда пользователь выбирает изображение и нажимает на предварительный просмотр, происходит обратная передача, и я сохраняю изображение во временную папку и изменяю его размер и показываю на странице. оттуда, пользователь может либо submit form
, либо edit
. Если он подчиняется, все в порядке, я скопирую измененное изображение в правильную папку.перезаписать файлы (изображение) и удалить изображение в C#?
Если он щелкает редактирования и выбирает другое изображение, нужно удалить загруженные файлы (как оригинальные, так и с измененным размером) и если я это сделать:
File.Delete(HostingEnvironment.MapPath(TmpDirectory + PostImageName + ".jpg"));
File.Delete(HostingEnvironment.MapPath(TmpDirectory + PostImageName + "_small_.jpg"));
я получаю исключение о том, какой-то другой процесс использует изображение и Can can not delete. (даже после обратной передачи!)
Кроме того, если вместо удаления этого файла я пытаюсь сохранить новое изображение с тем же именем, чтобы оно было перезаписано, оно все равно выдает ошибку, потому что файл уже существует.
Там нет ограничений на количество раз, пользователь может редактировать/предварительный просмотр, так что я не могу сохранить файлы пошагово (это даже не имеет смысла делать это)
Кроме того, после обратной передачи, когда пользователь возвращается в режим редактирования и просматривает форму, в которой элемент управления загрузкой файлов пуст. как я могу получить контроль загрузки файлов, чтобы сохранить значение? все остальные текстовые поля и текстовые области и флажки ведут себя правильно.
обобщить эти мои вопросы:
1), как на земле (или, вернее, в C#) можно удалить файлы, не получив это исключение?
OR
1) как переписать файлы?
2) как заставить элемент управления загрузкой сохранить свое значение между postbacks.
Спасибо.
вот как его сохранить: '' Bitmap img = new Bitmap (HostingEnvironment.MapPath (TmpDirectory + PostImageName + "_big.jpg")); '' так как мне это закрыть ?! – IrishBelly
Я имею в виду, вот как его открыть. Его сохранили с помощью управления загрузкой файлов через '' upImage.SaveAs (...) '' – IrishBelly
пришлось использовать img.Dispose(), и это сработало, спасибо! – IrishBelly