Asp.net mvc 将文件从视图上载到.net Core中的控制器
我正在尝试创建一个带有文件上载的.net核心项目 在这个模型中,我有一个类名“Movie”,它有两个属性:类型为byte[]的Image和类型为IFormFile的Picture 在视图中,我添加了一个带有输入的表单:Asp.net mvc 将文件从视图上载到.net Core中的控制器,asp.net-mvc,asp.net-core,.net-core,file-upload,Asp.net Mvc,Asp.net Core,.net Core,File Upload,我正在尝试创建一个带有文件上载的.net核心项目 在这个模型中,我有一个类名“Movie”,它有两个属性:类型为byte[]的Image和类型为IFormFile的Picture 在视图中,我添加了一个带有输入的表单: 在我的控制器中,我有这样一个功能: public-IActionResult-NewMovie(电影电影){… 在传递的电影对象中,属性图像和图片始终为空 我尝试将asp从图像更改为图片,将函数更改为Task类型,将IFormFile添加到函数调用中,但没有任何帮助 我一直无法
在我的控制器中,我有这样一个功能:
public-IActionResult-NewMovie(电影电影){…
在传递的电影对象中,属性图像和图片始终为空
我尝试将asp从图像更改为图片,将函数更改为Task类型,将IFormFile添加到函数调用中,但没有任何帮助
我一直无法获取文件的数据。我需要它的类型为byte[],但我会采取任何措施来帮助我
提前谢谢大家。您不需要将图像存储在字节数组中您的模型只需要一个
格式文件
,如下所示:
型号:
[Required(ErrorMessage = "The {0} field is required")]
[Display(Name = "Image")]
[DataType(DataType.Upload)]
public IFormFile Image { get; set; }
控制器:
if (model.Image == null)
return View(model);
string uploadsFolder = Path.Combine(webHostEnvironment.WebRootPath,"Your upload path");
string ImagePath = Guid.NewGuid().ToString() + "_" + model.Image.FileName;
string filePath = Path.Combine(uploadsFolder, ImagePath);
using (FileStream fs = new FileStream(filePath, FileMode.Create))
{
await model.Image.CopyToAsync(fs);
}
将此添加到您的表单
标记:enctype=“多部分/表单数据”
。
它对于提交type=“file”
输入至关重要
视图:
选择文件
最后,将ImagePath
仅保存在db实体中
<form enctype="multipart/form-data" Other attributes...>
<div class="custom-file">
<input asp-for="Model.Image" type="file" class="custom-file-input fileUpload" />
<label class="custom-file-label fileLabel">Choose file</label>
</div>
<input type="submit" value="Submit" />
</form>