目标:
上传图片,然后将其保存到路径“ C:\ test \”
问题:
主要问题在于应如何构建.net核心代码,该代码应检索传入的数据(即图片后的数据),然后将其保存在本地计算机中。
我不知道从哪里开始。
信息:
* Angular和c.net核心是分开的,它们不在同一解决方案中。
VS代码用于Angular,而VS 2017用于.net核心。
*前端代码为https://stackblitz.com/edit/angular-o1asqg
源代码是“ https://w3path.com/new-angular-8-file-upload-or-image-upload/”
谢谢!
[Route("api/[controller]")]
[ApiController]
public class ValuesController : ControllerBase
{
// GET api/values
[HttpGet]
public ActionResult<IEnumerable<string>> Get()
{
return new string[] { "value1", "value2" };
}
// GET api/values/5
[HttpGet("{id}")]
public ActionResult<string> Get(int id)
{
return "value";
}
// POST api/values
[HttpPost]
public void Post([FromBody] string value)
{
}
}
答案 0 :(得分:1)
主要问题是如何构建.net核心代码,使该代码应检索传入的数据(即图片后的数据),然后将其保存在本地计算机中。
您可以在Web api POST操作参数上收到IFormFile files
,名称files
对应于您的角度formData
的键名。如果您需要将其他属性附加到角度formData
,则可能会收到一个视图模型,其中包含asp.net核心操作上的所有这些属性。
下面是一个简单的工作演示。
角度:
onSubmit() {
const formData = new FormData();
formData.append('files', this.fileData);
this.http.post('https://localhost:5001/api/values/addfile', formData)
.subscribe(events => {
alert('SUCCESS !!');
})
}
Asp.Net Core Web API:
[HttpPost("addFile")]
public async Task AddFile(IFormFile files)
{
var fileName = Path.GetFileName(files.FileName);
var filePath = Path.Combine("C:\\test", fileName);
using (var fileSteam = new FileStream(filePath, FileMode.Create))
{
await files.CopyToAsync(fileSteam);
}
}