我真的很喜欢编程如此轻松的东西对我来说很难,如果有人可以解释我或帮助我在我的情况下我会很多。 在我的create方法中,我需要保存一个文件(db中的pdf)。 我现在拥有的: 型号:
public class Candidate : BaseEntity
{
public int Id { get; set; }
public string Name { get; set; }
public int Number { get; set; }
public string Profile { get; set; }
public Byte[] CV { get; set; }
}
控制器:
[HttpPost("UploadFiles")]
public IActionResult Post(List<IFormFile> files)
{
long size = files.Sum(f => f.Length);
// full path to file in temp location
var filePath = Path.GetTempFileName();
foreach (var formFile in files)
{
if (formFile.Length > 0)
{
using (var stream = new MemoryStream())
{
files.CopyTo(stream);
//await formFile.CopyToAsync(stream);
}
}
}
// process uploaded files
// Don't rely on or trust the FileName property without validation.
return Ok(new { count = files.Count, size, filePath });
}
在我看来,我正在使用它来附加文件:
<form method="post" enctype="multipart/form-data" asp-controller="UploadFiles" asp-action="Index">
<div class="form-group">
<div class="col-md-10">
<p>Upload one or more files using this form:</p>
<input type="file" name="files" multiple />
</div>
</div>
<div class="form-group">
<div class="col-md-10">
<input type="submit" value="Upload" />
</div>
</div>
</form>
答案 0 :(得分:1)
您无法获得可以使用的文件路径。上传的文件将出现在HTTP请求中,但您尚未将操作方法设置为正确接受。你真的应该阅读一些关于如何在ASP.NET MVC中上传文件的教程,这样你就有了一般的想法,而不是要求Stack Overflow上的某个人解释你需要做什么。
@mason。
这不是您问题的完整答案,但它会告诉您如何在asp.net mvc中上传文件。你必须根据你的问题修改它。
这是一个将回发到当前操作的表单。
@using (Html.BeginForm("Upload", "Upload", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
<input type="file" name="file" />
<input type="submit" name="Submit" id="Submit" value="Upload" />
}
此视图将发布的操作方法将文件保存到名为“uploads”的App_Data文件夹中的目录中。
[HttpPost]
public ActionResult Upload(HttpPostedFileBase file) {
if (file.ContentLength > 0)
{
var fileName = Path.GetFileName(file.FileName);
var path = Path.Combine(Server.MapPath("~/App_Data/uploads"), fileName);
file.SaveAs(path);
}
return RedirectToAction("Index");
}
Visit this for complete solution
再次这个答案只是为了解我们如何制作HTTP请求来上传文件以及如何保存文件。