|
上传文件在Web应用程序中是一个常见的功能。在http://asp.net core中上传文件并保存在服务器上,是很容易的。下面就来演示一下怎么样在 http://ASP.NET Core项目中进行文件上传。
整个文件将读入一个 IFormFile。IFormFile 是用于处理或保存文件的 C# 表示形式。
文件上传使用的磁盘和内存取决于并发文件上传的数量和大小。如果应用尝试缓冲过多上传,站点就会在内存或磁盘空间不足时崩溃。如果文件上传的大小或频率会消耗应用资源,请使用流式传输。
临时加更干货分享
大家能看到这里,已是对我们的支持了。分享一组9月录制的C#零基础教程。我们喜欢做这样的分享,它足够的基础,对新手友好。如果需要的话,就来免费领取吧!

快来领取吧
资料免费自取:
由于内容过多不便呈现,需要视频教程和配套源码的小伙伴,点击下方卡片!
也可点击下方卡片:点击后自动复制威芯号,并跳转到威芯。搜索威芯号添加,内容已做打包,备注知乎
即可免费领取,注意查收!
会将大于 64 KB 的所有单个缓冲文件从内存移到磁盘的临时文件。
用于较大请求的 ASPNETCORE_TEMP 临时文件将写入环境变量中命名的位置。如果未 ASPNETCORE_TEMP 定义,文件将写入当前用户的临时文件夹。
定义接口,使用FromForm接收数据
/// <summary>
/// <summary>
/// 添加反馈
/// </summary>
/// <param name=&#34;formData&#34;>文件</param>
/// <param name=&#34;UserID&#34;>用户id</param>
/// <param name=&#34;content&#34;>反馈内容</param>
/// <returns></returns>
[TypeFilter(typeof(AuthorizationFilterAttribute))]
[ApiResponseFilter]
[ApiExceptionFilter]
[HttpPost]
[Route(&#34;SaveUserfeedback&#34;)]
public bool SaveUserfeedback([FromForm] IFormFileCollection formData, [FromForm] uint UserID, [FromForm] string content)
{
SaveUserfeedback module = new SaveUserfeedback
{
UserID = UserID,
content = content
};
return _ICorrectiontypesBll.SaveUserfeedback(formData, module);
}
对上传的数据进行保存
private string UploadFile(IFormFile formFile)
{
var currentDate = DateTime.Now;
string webRootPath = AppContext.BaseDirectory;
var filePath = $&#34;/Template/UserfeedbackUploadFile/{currentDate:yyyyMMdd}/&#34;;
if (!Directory.Exists(webRootPath + filePath))
{
Directory.CreateDirectory(webRootPath + filePath);
}
var saveName = Guid.NewGuid().ToString();
saveName = saveName + &#34;.jpg&#34;;
string filepath = webRootPath + filePath + saveName;
using (var fs = System.IO.File.Create(filepath))
{
formFile.CopyTo(fs);
fs.Flush();
}
return filePath + saveName;
} |
|