图片服务器接收文件夹,.net webapi 接收保存图片到服务器,并居中剪裁压缩图片...

这篇博客介绍了如何使用.NET WebAPI接收上传的图片,将其保存到服务器,并进行居中裁剪和压缩。通过创建HTTP POST请求,将图片作为文件流发送,然后使用辅助类StreamHelp将文件流转换为文件,再利用ImageHelp类进行图片处理,包括裁剪成正方形和按比例压缩。最后,处理后的图片会被保存在服务器的指定文件夹下。
摘要由CSDN通过智能技术生成

每天解决一些c#小问题,在写微信小程序,或者一些手机软件接口,我们经常要用到上传图片到服务器,或者使用图床去保存我们的图片。

这次就简单明了的来梳理一下如何实现图片的接受和对接受到的图片进行一些处理。

一、实现图片的接收

1.首先要明确现在大部分前端的传输图片的统一规范都是通过POST请求+form表单提交文件的形式

话不多说上代码,这里是上传一张图片的示例,我用的是时间戳命名

[HttpPost,Route("UpLoadImageFiles")]

public string UpLoadImageFiles(string suffix)//suffix是后缀的意思,可以自己判断,也可以前端传输

{

var files = HttpContext.Current.Request.Files;//首先先确定请求里夹带的文件数量

if (files.AllKeys.Any())//如果存在文件

{

using (HttpClient client = new HttpClient())

{

HttpContextBase HttpContext = (HttpContextBase)Request.Properties["MS_HttpContext"];

var text = HttpContext.Request.Files[0].InputStream;//获取到文件流

string path = HttpContext.Request.MapPath("~/");//获取你的根目录

string datetime = GetTimeStamp();

string strPath = path + "File\\" + datetime + suffix;//这里要注意的是先要建立File文件夹,不然会报错,也可以自己写一个检测文件夹,这里就先不赘述

StreamHelp.StreamToFile(text,strPath);//需要用到下一步的帮助类将其保存为文件

//------------------以下是剪裁和压缩图片代码不需要的可以略过

string imgPath = path + "File\\img\\" + datetime + suffix;

ImageHelp img = new ImageHelp(strPath);

img.GetReducedImage(0.8, imgPath);

}

return "添加成功";

}

return "无文件";

}

///获取时间戳的方法

private string GetTimeStamp()

{

TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);

return Convert.ToInt64(ts.TotalMilliseconds).ToString();

}

2.获取到文件流后,需要一个帮助类将其转化为文件保存起来,我把它封装了一下StreamHelp.cs

public s

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值