.NET HttpGet 获取服务器文件下的图片信息 同步和异步方式处理

图片文件处理与响应
本文介绍了一种在项目中处理图片文件并将其作为HTTP响应发送的方法。通过将图片转换为字节流或内存流,可以有效地进行文件读取和网络传输。文章详细展示了如何使用C#读取本地图片,将其转换为字节流或内存流,并设置HTTP响应头以正确显示图片。
        /// <summary>
        /// 项目文件夹下路径  返回流类型数据,如:图片类型
        /// </summary>
        /// <returns></returns>
        public HttpResponseMessage GetImg()
        {  //  ~/ ImageFile / 001.png
            //项目文件夹下路径
            var imgPath = System.Web.Hosting.HostingEnvironment.MapPath("~/ImageFile/2.jpg");
           // 从图片中读取byte
            var imgByte = File.ReadAllBytes(imgPath);
           // 从图片中读取流
            var imgStream = new MemoryStream(File.ReadAllBytes(imgPath));
            var resp = new HttpResponseMessage(HttpStatusCode.OK)
            {
                Content = new StreamContent(imgStream)
                //或者
              //  Content = new ByteArrayContent(imgByte)
            };
            resp.Content.Headers.ContentType = new MediaTypeHeaderValue("image/jpg");
            return resp;
        }
 [HttpGet]
        public HttpResponseMessage SelectUploadFile()
        {

            Image img = Image.FromFile(@"C:\ImageFile\2.jpg");

            MemoryStream ms = new MemoryStream();
            img.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
            HttpResponseMessage result = new HttpResponseMessage(HttpStatusCode.OK);
            result.Content = new ByteArrayContent(ms.ToArray());
            result.Content.Headers.ContentType = new MediaTypeHeaderValue("image/png"); //设置http响应上的Content-Type 为image/Png媒体类型

            return result;

        }

 异步操作获取文件图片

 [Route("Main")]
        [HttpGet]
        public async Task<HttpResponseMessage> GetMain(string Ordernumber, int seq = 1)
        {
            return await Task.FromResult<HttpResponseMessage>(GetFileImage("main", Ordertnumber, seq));
        }

 private HttpResponseMessage GetFileImage(string type, string Ordernumber, int seq)
        {
            string basePath = @"C:\ImageFile\";
            string filePath = basePath + type + "\\_" + type + "_" + seq.ToString() + ".png";

            Image img = Image.FromFile(filePath);
            MemoryStream ms = new MemoryStream();
            img.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
            HttpResponseMessage result = new HttpResponseMessage(HttpStatusCode.OK);
            result.Content = new ByteArrayContent(ms.ToArray());
            result.Content.Headers.ContentType = new MediaTypeHeaderValue("image/Png");
            return result;
        }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值