zoukankan      html  css  js  c++  java
  • C# webapi 上传下载图片

    客户端上传文件

    string url = url + "webUploadFile";
                Uri server = new Uri(url);
                HttpClient httpClient = new HttpClient();
    
                MultipartFormDataContent multipartFormDataContent = new MultipartFormDataContent();
    
                StreamContent streamConent = new StreamContent(new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read));
    
                multipartFormDataContent.Add(streamConent, "jpg", fileName);
    
                HttpResponseMessage responseMessage = httpClient.PostAsync(server, multipartFormDataContent).Result;
                return responseMessage;

    服务端接收文件

    
    

    [Route("webUploadFile"), System.Web.Http.HttpPost]
    public HttpResponseMessage webUploadFile()

    {

      if (HttpContext.Current.Request.Files.AllKeys.Any())
                    {var httpPostedFiles = HttpContext.Current.Request.Files;
                        if (httpPostedFiles != null && httpPostedFiles.Count > 0)
                        {
                            // 获取文件
                            HttpPostedFile httpPostedFile = httpPostedFiles[0];
                            string fileExtension = ".jpg";// Path.GetExtension(httpPostedFile.FileName);// 文件扩展名
                            string fileId = "11";
                            string filePath = uploadPath + fileId + fileExtension;// 上传路径
    
    
                            httpPostedFile.SaveAs(filePath);
    
                            
                            string jsonres = "{"code":"200","message":"文件上传成功", "data":{ "fileUrl":"" + downloadurl+ "webDownloadFile?fileId=" + fileId + ""}}";
    
                            return new HttpResponseMessage(HttpStatusCode.OK) { Content = new StringContent(jsonres, System.Text.Encoding.UTF8, "application/json")};
                        }
                    }
    }

    服务端下载文件

    [Route("webDownloadFile"), System.Web.Http.HttpGet]   
            public HttpResponseMessage webDownloadFile()
            {
                if (HttpContext.Current.Request.Params.Count > 0 && HttpContext.Current.Request["fileId"] != null)
                {
                    string fileId = HttpContext.Current.Request["fileId"];
                    string fileName = fileId + ".jpg";
    
                    string path = uploadPath + fileName;
                    if (!File.Exists(path))
                    {
                        return new HttpResponseMessage(HttpStatusCode.NotFound) { Content = new StringContent(Common.ReturnMessage("404", "文件不存在"), System.Text.Encoding.UTF8, "application/json") };
                    }
    
                    HttpResponseMessage result = null;
    
                    FileStream fs = new FileStream(path, FileMode.Open);
    
                    result = new HttpResponseMessage(HttpStatusCode.OK);
                    result.Content = new StreamContent(fs);
                    result.Content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("image/jpeg");
    
                    return result;
                }
    
                return new HttpResponseMessage(HttpStatusCode.BadRequest) { Content = new StringContent(Common.ReturnMessage("400", "文件下载失败"), System.Text.Encoding.UTF8, "application/json") };
            }
  • 相关阅读:
    SceneBuilder 打不开 .fxml文件,只在任务栏显示
    JDK1.6 1.7 1.8 多版本windows安装 执行命令java -version 版本不变的问题
    新手根据菜鸟教程安装docker,从No package docker-io available开始遇到的坑...
    Linux安装mysql
    用Eclipse搭建ssh框架
    前端面试之vue相关的面试题
    前端面试之闭包理解
    HTML5新规范和CSS3新特性
    vue2.0项目创建之环境变量配置
    windows下SVN服务器搭建--VisualSVN与TortoiseSVN的配置安装
  • 原文地址:https://www.cnblogs.com/jhlong/p/10784383.html
Copyright © 2011-2022 走看看