#javascript #c# #asp.net #asp.net-mvc
#javascript #c# #asp.net #asp.net-mvc
Вопрос:
Я хочу, чтобы при загрузке изображения после этого я вводил новое имя для изображения и после нажатия кнопки отправки затем изображению будет изменено новое имя, и оно будет сохранено в path проекта, пожалуйста, подскажите мне, как написать код? большое спасибо
введите код здесь
<div class="row">
<div class="col-sm-6">
Image Name: <input type="text" id="name"/>
<input type="file" class="form-control" id="files" name="files">
<input type=submit/>
</div>
</div>
код:
public ActionResult UploadFiles(файлы HttpPostedFileBase) {
string newFileName = "";
if (files != null)
{
string path = HttpContext.Server.MapPath(@"~/Data/images");
bool exists = Directory.Exists(path);
if (!exists)
Directory.CreateDirectory(path);
string extension = Path.GetExtension(files.FileName);
newFileName = Guid.NewGuid() extension;
string filePath = Path.Combine(path, newFileName);
files.SaveAs(filePath);
}
return View();
}
Комментарии:
1. Привет, Гемки, мы не собираемся направлять вас при написании кода. Вам нужно будет сделать это самостоятельно. Если вы что-то пробовали, мы будем рады помочь вам при возникновении проблем. Что вы пробовали, где вы застряли, опубликуйте фрагмент вашего кода, чтобы помочь нам направлять вас.
2. Я отредактировал и добавил свой код на вопрос, как указано выше, спасибо за ваш ответ
Ответ №1:
Из представления передайте значение #name в метод контроллера UploadFiles вместе с файлами в виде параметров.
Контроллер:
public ActionResult UploadFiles(HttpPostedFileBase files, string newName) {
string newFileName = "";
if (files != null)
{
string path = HttpContext.Server.MapPath(@"~/Data/images");
bool exists = Directory.Exists(path);
if (!exists)
Directory.CreateDirectory(path);
string extension = Path.GetExtension(files.FileName);
newFileName = newName.Trim() extension; //pass newName here
string filePath = Path.Combine(path, newFileName);
files.SaveAs(filePath);
}
return View();
}
Вы также можете добавить текущую дату и время в имя файла:
newFileName= DateTime.Now.ToString("yyyyMMdd") "-" newName.Trim() extension;
Комментарии:
1. Я редактирую ваш код, но он не может получить новое имя image из ввода (текст)
2. Не могли бы вы попробовать поискать «Как передавать значения из представлений в контроллер в виде параметров ActionResult в mvc»
3. Дорогой Джимеш, я исправил проблему при изменении нового имени для изображения, спасибо за вашу помощь. 🙂
4. @GemkyLa Пожалуйста, примите ответ, если он помог вам решить проблему. Таким образом, другие могут получить от него помощь.
5. Дорогой Джимеш: Да, спасибо. Но у меня проблема с изменением размера изображения, это проблема с содержимым в изображении, при изменении размера нового изображения оно будет отличаться от изображения ранее. он потерял часть ширины и высоты изображения. Я хочу, чтобы при изменении размера оно было таким же маленьким, как изображение ранее, и содержимое не могло измениться в изображении. Пожалуйста, помогите мне, если вы можете это сделать. Спасибо