Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image 我正在尝试使用ASP.NET Core 3.0 MVC上载图像_Image_Upload_Asp.net Core Mvc_Asp.net Core 3.0 - Fatal编程技术网

Image 我正在尝试使用ASP.NET Core 3.0 MVC上载图像

Image 我正在尝试使用ASP.NET Core 3.0 MVC上载图像,image,upload,asp.net-core-mvc,asp.net-core-3.0,Image,Upload,Asp.net Core Mvc,Asp.net Core 3.0,我正在尝试使用ASP.NET Core 3.0 MVC上载和保存图像,但遇到一些问题。我可以得到图像上传,但它不会保存到数据库。我一直在看其他的例子,但我正在努力让它做我想做的事情。我还不熟悉ASP.NET Core 3.0 MVC的编程,所以我可能有点过头了 我希望有人有一个更大的大脑,然后我可以帮助我,并告诉我哪里出了错 提前感谢您的帮助 控制器:员工控制器: [HttpPost] [ValidateAntiForgeryToken] public async System.Threadin

我正在尝试使用ASP.NET Core 3.0 MVC上载和保存图像,但遇到一些问题。我可以得到图像上传,但它不会保存到数据库。我一直在看其他的例子,但我正在努力让它做我想做的事情。我还不熟悉ASP.NET Core 3.0 MVC的编程,所以我可能有点过头了

我希望有人有一个更大的大脑,然后我可以帮助我,并告诉我哪里出了错

提前感谢您的帮助

控制器:
员工控制器

[HttpPost]
[ValidateAntiForgeryToken]
public async System.Threading.Tasks.Task<IActionResult> CreateAsync([Bind] Employee employee, IFormFile EmployeeImage)
{
        if (ModelState.IsValid)
        {
            objemployee.AddEmployee(employee);
        }

        if (EmployeeImage != null && EmployeeImage.Length > 0)
        {
            var fileName = Path.GetFileName(EmployeeImage.FileName);
            var filePath = Path.Combine(Directory.GetCurrentDirectory(), @"wwwroot\Images", fileName);

            using (var fileStream = new FileStream(filePath, FileMode.Create))
            {    
                await EmployeeImage.CopyToAsync(fileStream);
                return RedirectToAction("Index");
            }
        }

        return View(employee);
}
// To add new employee record    
public void AddEmployee(Employee employee)
{
    using (SqlConnection con = new SqlConnection(connectionString))
    {
        SqlCommand cmd = new SqlCommand("SP_Add_Worker", con);
        cmd.CommandType = CommandType.StoredProcedure;

        cmd.Parameters.AddWithValue("@EmployeeNumber", employee.EmployeeNumber);
        cmd.Parameters.AddWithValue("@PositionTitle", employee.PositionTitle);
        cmd.Parameters.AddWithValue("@FirstName", employee.FirstName);
        cmd.Parameters.AddWithValue("@LastName", employee.LastName);
        cmd.Parameters.AddWithValue("@Dept", employee.Dept);
        cmd.Parameters.AddWithValue("@HireDate", employee.HireDate);
        cmd.Parameters.AddWithValue("@EmployeeImage", employee.EmployeeImage);

        con.Open();
        cmd.ExecuteNonQuery();
        con.Close();
    }
}
型号
员工

public class Employee
{
    [Key]
    public int ID { get; set; }

    [Required(ErrorMessage = "Clock Number is required")]
    public string EmployeeNumber { get; set; }

    [Required(ErrorMessage = "Position Title is required")]
    public string PositionTitle { get; set; }

    [Required(ErrorMessage = "First Name is required")]
    public string FirstName { get; set; }

    [Required(ErrorMessage = "Last Name is required")]
    public string LastName { get; set; }

    [Required(ErrorMessage = "Department is required")]
    public string Dept { get; set; }

    [Required(ErrorMessage = "Hire Date is required")]
    [Display(Name = "Start Date")]
    [DataType(DataType.Date)]
    [DisplayFormat(DataFormatString = "{0:MM/dd/yyyy}", ApplyFormatInEditMode = true)]
    public DateTime? HireDate { get; set; }

    [Required(ErrorMessage = "Please choose file to upload.")]
    public string EmployeeImage { get; set; }
} 
查看
创建

@model Flexfab.Models.Employee
@{
    ViewData["Title"] = "Create";
}
<h2>Create</h2>
<h4>Employees</h4>
<hr />
<div class="row">
    <div class="col-md-4">
        <form asp-action="Create" enctype="multipart/form-data">
            <div asp-validation-summary="ModelOnly" class="text-danger"></div>

            <div class="form-group">
                <label>Clock Number:</label>
                @Html.TextBoxFor(model => model.EmployeeNumber, new { @class = "form-control", @placeholder = "Clock Number" })
                <span asp-validation-for="EmployeeNumber" class="text-danger"></span>
            </div>

            <div class="form-group">
                <label>Position:</label>
                @Html.TextBoxFor(model => model.PositionTitle, new { @class = "form-control", @placeholder = "Position Title" })
                <span asp-validation-for="PositionTitle" class="text-danger"></span>
            </div>

            <div class="form-group">
                <label>First Name</label>
                @Html.TextBoxFor(model => model.FirstName, new { @class = "form-control", @placeholder = "First Name" })
                <span asp-validation-for="FirstName" class="text-danger"></span>
            </div>

            <div class="form-group">
                <label>Last Name:</label>
                @Html.TextBoxFor(model => model.LastName, new { @class = "form-control", @placeholder = "Last Name" })
                <span asp-validation-for="LastName" class="text-danger"></span>
            </div>

            <div class="form-group">
                <label>Dept:</label>
                @Html.TextBoxFor(model => model.Dept, new { @class = "form-control", @placeholder = "Dept" })
                <span asp-validation-for="Dept" class="text-danger"></span>
            </div>

            <div class="form-group">
                <label>Hire Date:</label>
                @Html.TextBoxFor(model => model.HireDate, new { @class = "form-control", @placeholder = "mm/dd/yyyy" })
                <span asp-validation-for="HireDate" class="text-danger"></span>
            </div>

            <div class="form-group">
                <label>Employee Picture:</label>
                <br />
                <input type="file" id="EmployeeImage" name="EmployeeImage">
                @Html.HiddenFor(model => model.EmployeeImage, new { @class = "form-control" })
                <span asp-validation-for="EmployeeImage" class="text-danger"></span>
            </div>

            <div class="form-group">
                <input type="submit" value="Create" class="btn btn-primary" />
            </div>
        </form>
    </div>
</div>

<div>
    <a asp-action="Index">Back to List</a>
</div>
@section Scripts {
    @{await Html.RenderPartialAsync("_ValidationScriptsPartial");}
}
@model Flexfab.Models.Employee
@{
ViewData[“标题”]=“创建”;
}
创造
员工

时钟号码: @Html.TextBoxFor(model=>model.EmployeeNumber,新的{@class=“form control”,@placeholder=“Clock Number”}) 职位: @TextBoxFor(model=>model.PositionTitle,新的{@class=“form control”,@placeholder=“Position Title”}) 名字 @Html.TextBoxFor(model=>model.FirstName,新的{@class=“form control”,@placeholder=“First Name”}) 姓氏: @Html.TextBoxFor(model=>model.LastName,新的{@class=“form control”,@placeholder=“Last Name”}) 部: @Html.TextBoxFor(model=>model.Dept,新的{@class=“form control”,@placeholder=“Dept”}) 租用日期: @Html.TextBoxFor(model=>model.HireDate,新的{@class=“form control”,@placeholder=“mm/dd/yyyy”}) 员工照片:
@Html.HiddenFor(model=>model.EmployeeImage,新的{@class=“form control”}) 返回列表 @节脚本{ @{wait Html.RenderPartialAsync(“_validationScript”);} }
您不能在数据库中保存图像或其他类型的文件,但只能保存文件的路径。图像将保存在文件夹
wwwroot\Images
中。要检索文件,首先需要保存该文件

using (var fileStream = new FileStream(filePath, FileMode.Create))
{    
     await EmployeeImage.CopyToAsync(fileStream);
     employee.EmloyeeImage = fileName.Uri.OriginalString;
     return RedirectToAction("Index");
}