#asp.net-mvc #image-uploading #httppostedfilebase
#asp.net-mvc #загрузка изображений #httppostedfilebase
Вопрос:
Я пытался выяснить, почему моя HttpPostedFileBase возвращает значение null. Я просмотрел другие ответы, а также следовал некоторым руководствам о том, как загрузить изображение. Дело в том, что я все еще просто получаю null из HttpPostedFileBase и запроса.Файлы. Есть ли что-то, чего мне не хватает?
Мой контроллер
[HttpPost]
public ActionResult Save(HttpPostedFileBase PreviewImageFile)
{
//some code//
if (PreviewImageFile.ContentLength > 0)
{
try
{
var uploadedImage = new Bitmap(PreviewImageFile.InputStream);
var width = 368;
var height = 305;
var uploadedImageThumb = ImageHelper.CreateThumbnail(uploadedImage, width, height);
uploadedImageThumb.Save("/path" id ".png", ImageFormat.Png);
uploadedImageThumb.Dispose();
uploadedImage.Dispose();
}
catch
{
}
}
//some code here//
return Json(new { success = true });
}
И моя форма из представления
<% using (Html.BeginForm("Save", "SaveThemes", FormMethod.Post, new { enctype = "multipart/form-data", @id = "TestForm" }))
{ %>
<label for="PreviewImageFile">Perview Image</label>
<input type="file" id="PreviewImageFile" name="PreviewImageFile" size="40" value="" />
//some code here//
<button type="submit" >save</button>
<% } %>
Комментарии:
1. В показанном вами примере кода нет ничего плохого. Пожалуйста, предоставьте более подробную информацию о выполняемом HTTP-запросе. Используйте Fiddler или панель инструментов разработчика вашего веб-браузера, чтобы захватить фактический запрос и показать его здесь. Заголовки HTTP полезная нагрузка тела сообщения HTTP. Также есть ли у вас какие-либо плагины javascript, которые могут перехватывать обработчик отправки формы?
2. Отладьте ваше приложение и проверьте этот запрос. Файлы. Подсчитывается при публикации вашего файла. Если это работает, вы можете использовать запрос. Файлы[0]
3. Ваше использование возврата
JSON()
в конце вашего ActionMethod и добавление элемента id в форму наводит меня на мысль, что вы пытаетесь загрузить файл с помощью метода AJAX. Без некоторых специальных плагинов загрузка файлов AJAX не работает * (да, есть некоторые методы HTML 5, но в целом это бесполезно). Используете ли вы jQuery или какой-либо другой JavaScript для фактической публикации формы?4. Я использую
.submit()
from jquery для отправки формы и некоторый JavaScript для проверки входных данных, которые я принимаю.5. @Themonkey180 — да, вы не можете отправить AJAX (что означает использование jQuery) форму с загрузкой файла. Вы можете проверить это с помощью jQuery, но фактическая отправка формы должна быть полностраничной публикацией на сервере.