.net core 上传文件到本地服务器
1、本文是上传文件到本地服务器,主要以作者做的业务上传apk为例子,下面直接上代码
[HttpGet, HttpPost, HttpOptions]
[Consumes("application/json", "multipart/form-data")]
public IActionResult UploadFileToServer([FromForm] IFormCollection file)
{
try
{
IFormFile item = null;
if(file.IsNull() || file.Count <= 0)
{
var files = Request.Form.Files;;
if(files.Count <= 0)
{
return ErrorResult("未获取到上传文件,请重新上传", 111111);
}
item = files[0];
}
var filename = string.Empty;
// 服务器将要存储文件的路径
var Folder = AppDomain.CurrentDomain.BaseDirectory + "AppFileUploads/";
if(Directory.Exists(Folder) == false) // 如果不存在就创建file文件夹
{
Directory.CreateDirectory(Folder);
}
item = file.Files[0];
if(item == null)
{
return ErrorResult("文件内容为空,请重新上传", 111112);
}
string name = item.FileName; // 获取文件名
string pathName = Path.GetExtension(name); // 获取后缀名
if(pathName != ".apk")
{
return ErrorResult("不支持该文件格式,请上传APK后缀文件", 111113);
}
filename = Folder + name;
if(System.IO.File.Exists(filename))
{
System.IO.File.Delete(filename);
}
using(FileStream fs = System.IO.File.Create(filename))
{
// 复制文件
item.CopyTo(fs);
// 清空缓冲区数据
fs.Flush();
}
return SuccessResult(filename, "文件上传到本地服务器成功!");
}
catch(Exception ex)
{
return ErrorResult("上传文件到本地服务器出现异常,异常原因为:" + ex.Message, 111150);
}
}
2、关于返回值SuccessResult、ErrorResult是新建控制器类时继承了基类,基类内包含如下方法
/// <summary>
/// 返回成功信息
/// </summary>
/// <param name="data">附加内容</param>
/// <param name="msg">成功信息</param>
/// <returns>返回Result格式信息</returns>
[NonAction]
public IActionResult SuccessResult(object data = null, string msg = "成功")
{
return ToJsonContent(new Result < object > ()
{
Code = 200,
Msg = msg,
Data = data == null ? new {} : data
});
}
/// <summary>
/// 返回错误信息
/// </summary>
/// <param name="msg">错误信息</param>
/// <param name="code">错误码</param>
/// <param name="statusCode">HTTP状态代码的值,未登录和登录过期为HttpStatusCode.Unauthorized,没有权限是HttpStatusCode.Forbidden</param>
/// <returns>返回Result格式信息</returns>
[NonAction]
public IActionResult ErrorResult(string msg, int code, HttpStatusCode statusCode = HttpStatusCode.OK)
{
return ToJsonContent(new Result < object > ()
{
Code = code,
Msg = msg,
});
}
/// <summary>
/// JSON格式转换
/// </summary>
/// <param name="obj"></param>
/// <param name="isNull"></param>
/// <returns></returns>
[NonAction]
public IActionResult ToJsonContent(object obj, bool isNull = false)
{
JsonSerializerOptions options = new JsonSerializerOptions()
{
WriteIndented = true, //格式化json字符串
AllowTrailingCommas = true, //可以结尾有逗号
IgnoreNullValues = isNull, //可以有空值,转换json去除空值属性
IgnoreReadOnlyProperties = true, //忽略只读属性
PropertyNameCaseInsensitive = true, //忽略大小写
Encoder = JavaScriptEncoder.Create(UnicodeRanges.All),
DictionaryKeyPolicy = JsonNamingPolicy.CamelCase
};
options.Converters.Add(new DateTimeJsonConverter());
return Content(JsonSerializer.Serialize(obj, options));
}
以上就是.net core 上传文件到本地服务器的介绍,做此记录,如有帮助,欢迎点赞关注收藏!
.net core 上传文件到本地服务器的更多相关文章
- ajaxForm上传文件到本地服务器(封装)
不啰嗦,直接看代码 1.html: <div class="con-item fix"> <span class="f">文章封面< ...
- C# 上传文件至远程服务器
C# 上传文件至远程服务器(适用于桌面程序及web程序) 2009-12-30 19:21:28| 分类: C#|举报|字号 订阅 最近几天在玩桌面程序,在这里跟大家共享下如何将本地文件上传 ...
- asp.net 服务器 上传文件到 FTP服务器
private string ftpServerIP = "服务器ip";//服务器ip private string ftpUserID = "ftp的用户名" ...
- 在C#客户端用HTTP上传文件到Java服务器
在C#客户端用HTTP上传文件到Java服务器 来源:http://www.cnblogs.com/AndyDai/p/5135294.html 最近在做C / S 开发,需要在C#客户端上传文件到 ...
- java 上传文件到 ftp 服务器
1. java 上传文件到 ftp 服务器 package com.taotao.common.utils; import java.io.File; import java.io.FileInpu ...
- .NET CORE上传文件到码云仓库【搭建自己的图床】
.NET CORE上传文件到码云仓库[搭建自己的图床] 先建一个公共仓库(随意提交一个README文件或者.gitignore文件保证master分支的存在),然后到gitee的个人设置页面找到[私人 ...
- SpringBoot 上传文件到linux服务器 异常java.io.FileNotFoundException: /tmp/tomcat.50898……解决方案
SpringBoot 上传文件到linux服务器报错java.io.FileNotFoundException: /tmp/tomcat.50898-- 报错原因: 解决方法 java.io.IOEx ...
- ASP.NET上传文件到远程服务器(HttpWebRequest)
/// <summary> /// 文件上传至远程服务器 /// </summary> /// <param name="url">远程服务地址 ...
- .Net 上传文件到ftp服务器和下载文件
突然发现又很久没有写博客了,想起哎呦,还是写一篇博客记录一下吧,虽然自己还是那个渣渣猿. 最近在做上传文件的功能,上传到ftp文件服务器有利于管理上传文件. 前面的博客有写到layui如何上传文件,然 ...
- atitit.javascript js 上传文件的本地预览
atitit.javascript js 上传文件的本地预览 1. .URL.createObjectURL 1 1.1. 吊销所有使用 URL.createObjectURL 而创建的 URL,以 ...
随机推荐
- RabbitMQ 常见问题
RabbitMQ 常见问题 昔我往矣,杨柳依依.今我来思,雨雪霏霏. 1.什么是RabbitMQ? RabbitMQ是一款开源的.Erlang编写的消息中间件:最大的特点就是消费并不需要确保提供方存 ...
- 18道经典链表题刷题总结——WeetCode1 链表系列
系列文章目录和关于我 前言: WeetCode = Week leetCode 寓意每周刷点leetCode 题目 链表是我恢复刷题手感最喜欢做的系列,其没用太多的算法思想,单纯考验对指针的理解,和c ...
- nydusd 源码理解(一)
" 尝试通过 nydus[1] 源码理解工作流程.可能由于代码变动导致和本文记录的内容有出入. 1. 环境准备 git clone https://github.com/dragonflyo ...
- i春秋Zone
打开网页是个简单的表单填写, 尝试注入....没用 查看源码,没找到什么有用的信息 只有抓包了 发现一个cookie的login值为0,改为1试试 没什么特别的回显,但这应该就是登录与否的判定了,所以 ...
- Excel2010表格内容被加密,无法编辑内容。
Sub PasswordBreaker() Dim i As Integer, j As Integer, k As Integer Dim l As Integer, m As Integer, n ...
- 【SQL真题】SQL2:平均播放进度大于60%的视频类别
题目:https://www.nowcoder.com/practice/c60242566ad94bc29959de0cdc6d95ef?tpId=268&tqId=2285039& ...
- 【每日一题】【双指针、位运算】2022年2月3日-NC103 反转字符串
描述 写出一个程序,接受一个字符串,然后输出该字符串反转后的字符串.(字符串长度不超过1000) 答案:双指针 import java.util.*; public class Solution { ...
- go-carbon 1.5.2版本发布, 修复已知 bug 和新增功能及葡萄牙语翻译文件
carbon 是一个轻量级.语义化.对开发者友好的golang时间处理库,支持链式调用. 目前已被 [awesome-go](https://github.com/avelino/awesome-go ...
- Elasticsearch提示low disk watermark [85%] exceeded on [UTyrLH40Q9uIzHzX-yMFXg][Sonofelice][/Users/baid...
mac本地启动es之后发现运行一段时间一分钟就能打印好几条info日志: [2018-03-13T10:15:42,497][INFO ][o.e.c.r.a.DiskThresholdMonitor ...
- Go适合做什么?为何这么多人偏爱Go语言?
Go作为Google2009年推出的语言,其被设计成一门应用于搭载 Web 服务器,存储集群或类似用途的巨型中央服务器的系统编程语言. 对于高性能分布式系统领域而言,Go 语言无疑比大多数其它语言有着 ...