• Postman Post请求上传文件


    Postman Post请求上传文件
    一、选择post请求方式,输入请求地址

    二、填写Headers

    Key:Content-Type ;Value:multipart/form-data

    如下图

     

    三、填写body

    选择form-data,key选择file类型后value会出现按钮,点击按钮选择文件,最后点击Send发送即可。

     

    返回结果,如上图所示。

    四、后端:C# webapi 方法

            [AllowAnonymous] //测试时允许任何人访问,测试后要删除
            [HttpPost]  //指定post请求才能访问
            [Route("UploadFile")]  //方法别名,路由根据别名找到方法。
            public ApiResult UploadFile()
            {
                var result = new ApiResult();
                var httpRequest = HttpContext.Current.Request; //与MVC控制器不同,这里要加 Current。
                if (httpRequest.Files.Count > 0)
                {
                    string url = null;
                    foreach (string file in httpRequest.Files)
                    {
                        var postedFile = httpRequest.Files[file];
                        Guid name = Guid.NewGuid();
                        string ext = postedFile.FileName.Split('.')[postedFile.FileName.Split('.').Length - 1];
                         //需要的时候可以进行文件格式控制
                        //if (!(ext.ToLower().Contains("jpg") || ext.ToLower().Contains("jpeg") || ext.ToLower().Contains("png") || ext.ToLower().Contains("gif")))
                        //{
                        //    result.msg = "请上传jpg,png,gif,jpeg格式的图片";
                        //    break;
                        //}
                        string fileName = name.ToString() + "." + ext;
    
                        var serverPath = "~/UploadFiles/StandardFiles";
                        var dirPath = HttpContext.Current.Server.MapPath(serverPath);
                        var filePath = Path.Combine(dirPath, fileName);
                        if (!Directory.Exists(dirPath))
                        {
                            Directory.CreateDirectory(dirPath);
                        }
                        postedFile.SaveAs(filePath);
                        url = Url.Content(serverPath + "/" + fileName);
                    }
                    result.data = new
                    {
                        url = url  //返回一个url到前端,前端结合表单操作保存到数据库。列表页根据这个url呈现给用户就可以下载文件。
                    };
                    result.success = true;
                }
                return result;
            }                        

     建议进行数据格式控制,任何文件格式都允许上传是有风险的,对服务器和将来下载的人的电脑。

    参考文献:https://blog.csdn.net/maowendi/article/details/80537304

  • 相关阅读:
    RPC服务和HTTP服务对比
    常用工具地址
    maven教程
    【springboot】知识点总结
    [JZOJ4272] [NOIP2015模拟10.28B组] 序章-弗兰德的秘密 解题报告(树形DP)
    [NOIP2015模拟10.22] 最大子矩阵 解题报告(单调栈)
    [NOIP2015模拟10.27] 挑竹签 解题报告(拓扑排序)
    [NOIP2015模拟10.27] [JZOJ4270] 魔道研究 解题报告(动态开点+权值线段树上二分)
    [NOIP2015模拟10.22] 最小代价 解题报告 (最小生成树)
    BZOJ4479 [JSOI2013] 吃货jyy 解题报告(三进制状态压缩+欧拉回路)
  • 原文地址:https://www.cnblogs.com/hao-1234-1234/p/9947294.html
Copyright © 2020-2023  润新知