客户端上传文件

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") };}

转载于:https://www.cnblogs.com/jhlong/p/10784383.html

C# webapi 上传下载图片相关推荐

  1. 使用GridFS上传下载图片以及其他文件

    MongoDB所带的GridFS是极为方便的文件管理系统,MongoDB的Shell语言与Python的语言风格非常像,写起来非常方便.重点是需要用StringIO将文件装换为二进制保存.主程序是一个 ...

  2. FTP数据抓包上传下载图片(wireshark)

    一.搭建本地FTP服务器 1.在D盘创建"kiss_ftp"文件夹,将gg.jpg保存到该文件夹下. 2.打开FTP服务器软件,设置用户名为"kiss",密码为 ...

  3. im4java裁剪图片之后再将图片在mongoDB上传下载图片

    本文主要实现以下几个功能: 1.先通过IM4java的功能将本地的一张图片剪切出来形成新的图片 2.通过上传功能,将裁剪的图片上传到mongodb数据库中储存 3.再从mongodb数据库中取出刚才上 ...

  4. java公众号图片上传_java微信公众号上传下载图片,springmvc demo

    [实例简介] 微信上传下项目使用说明: 1.本项目适合学习springmvc学者(springmvc demo), url(http://localhost:8082/com.demo.weixin/ ...

  5. 微信小程序系列——上传下载图片以及图片的展示

    一.上传 wxml: <button bindtap='upload'>上传文件</button> js: 首先在data里添加全局变量images data: {images ...

  6. MultipartFile上传/下载图片

    文件上传 图片上传 使用 jquery的来异步提交, 使用jQuery第三方插件 jquer.form.js, jsp的orm表单中要有enctype="multipart/form-dat ...

  7. Android图片上传和下载,android 上传/下载 图片

    public class HttpAssist { private static final String TAG = "uploadFile"; private static f ...

  8. 【android】项目案例(三)之微信朋友圈上传,下载图片

    功能: 1.相册列表 2.图片多选,单选 3.可以左右滑动 4.图片预览 可以双击放大,捏拉放大 5.图图片缩放:支持双击缩放,手指捏拉缩放 需要源码的留言或下载地址:https://github.c ...

  9. 文件上传 java web_JavaWeb 文件上传下载

    1. 文件上传下载概述 1.1. 什么是文件上传下载 所谓文件上传下载就是将本地文件上传到服务器端,从服务器端下载文件到本地的过程.例如目前网站需要上传头像.上传下载图片或网盘等功能都是利用文件上传下 ...

最新文章

  1. Keil5简介、下载及安装(NB-IoT专栏—基础篇2)
  2. 浅谈Java throw, throws, try catch异常处理
  3. trackback (引用通告) 说明
  4. js 小数点 精准算法
  5. 计算机硬件系统的运行速度,电脑运行速度不给力 需要更换哪些硬件?
  6. 人工智能是互联网下一轮变革的核心
  7. 从移动广告业务“长出”的新增长点,汇量科技进军云服务
  8. Java 向文件中追加数据
  9. JVM内存模型、逃逸分析以及发生GC的时机
  10. VRay5材质库下载慢、快速安装的解决办法
  11. VC编程获取和修改环境变量,不重启系统即时生效
  12. Flask 推理模型,显存一直增长。
  13. 保险初识经验汇总(重疾、医疗、寿险、意外)
  14. 如何开发一个车牌识别,车牌识别系统,车辆识别系统毕业设计毕设作品
  15. 输入一个数并正序、反序输出。 例如:输入123,输出123 321。
  16. linux中流设备_Linux纯干货知识总结|面试专用
  17. 马帅:我的同事王开源-真正开源斗士
  18. Python——类和实例
  19. ODL MD-SAL Data Transactions
  20. python创建数据库字数不限制_Python之Mysql数据库

热门文章

  1. 82. 删除排序链表中的重复元素 II(链表操作)
  2. New Year and Old Subsequence CodeForces - 750E(线段树+矩阵dp)2019南昌icpc网络赛Hello 2019
  3. lisp方格网法计算土方量_CAD土方软件方格网法与三角网法相结合,准确计算土方量...
  4. 计算机组成原理实验八报告,计算机组成原理实验报告-八位补码加减法器的设计与实现.docx...
  5. java的语法知识_Java语法知识点
  6. 普罗米修斯监控系统_基于Prometheus和Grafana的监控平台 - 环境搭建
  7. 图论--网络流最大流问题
  8. PL/SQL Developer如何连接64位的Oracle图解
  9. 如何解决Ubuntu 14.04编译make menuconfig时缺少'ncurses-devel'库
  10. 嵌入式系统开发人员的知识结构