栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

.net core 上传文件到本地服务器

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

.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是新建控制器类时继承了基类,基类内包含如下方法
/// 
/// 返回成功信息
/// 
/// 附加内容
/// 成功信息
/// 返回Result格式信息
[NonAction]
public IActionResult SuccessResult(object data = null, string msg = "成功")
{
    return ToJsonContent(new Result < object > ()
    {
        Code = 200,
        Msg = msg,
        Data = data == null ? new {} : data
    });
}

/// 
/// 返回错误信息
/// 
/// 错误信息
/// 错误码
/// HTTP状态代码的值,未登录和登录过期为HttpStatusCode.Unauthorized,没有权限是HttpStatusCode.Forbidden
/// 返回Result格式信息
[NonAction]
public IActionResult ErrorResult(string msg, int code, HttpStatusCode statusCode = HttpStatusCode.OK)
{
    return ToJsonContent(new Result < object > ()
    {
        Code = code,
        Msg = msg,
    });
}

/// 
/// JSON格式转换
/// 
/// 
/// 
/// 
[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 上传文件到本地服务器的介绍,做此记录,如有帮助,欢迎点赞关注收藏!
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/676520.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号