#region 上传图片

[HttpPost]
/// <summary>
/// 上传文件 jpg图片
/// </summary>
/// <param name="imgStr">Base64位数据</param>
/// <returns>一个虚拟的地址</returns>
public string UpLoadImg(string imgStr)
{
string urlPath = string.Empty;
try
{
// 转化64位数据
Image img = this.ToImageByBase64(imgStr);
// 定义文件名称
string fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + ".jpg";
// 定义保存的文件夹
string bodyPath = "/UpLoadImg/";
// 设置B站点路径
string basePath = "E:\\webservice2"; ;
string savabodyPath = bodyPath.Replace('/', '\\');
string newPath = basePath + savabodyPath;

// 如果文件夹不存在则创建
if (Directory.Exists(newPath) == false)
{
Directory.CreateDirectory(newPath);
}

string savaPath = newPath + fileName;

// 将得到的Image对象画到新的画布上
Image newImg = new Bitmap(img.Width, img.Height);
Graphics draw = Graphics.FromImage(newImg);
draw.DrawImage(img, 0, 0);
img.Dispose(); // 释放原来的对象

//保存文件 并修改数据库地址 新的图片对象保存
newImg.Save(savaPath);

urlPath = bodyPath + fileName; // 构建返回值
}
catch (Exception)
{
urlPath = "";
}
//返回一个地址
return urlPath;
}

/// <summary>
/// 将Base64字符串转化为图片
/// </summary>
/// <param name="base64"></param>
/// <returns></returns>
private System.Drawing.Image ToImageByBase64(string base64)
{
byte[] arr = Convert.FromBase64String(base64);
MemoryStream ms = new MemoryStream(arr);
Image bmp = new Bitmap(ms);
ms.Close();

return bmp;
}
#endregion

Base64上传图片的更多相关文章

  1. Android 通过Base64上传图片到服务器

    之前做上传图片是采用HttpServlet上传,不过用了一下Base64上传图片后,感觉比HttpServlet方便很多,大家也可以跟着尝试一下. 前台图片处理:(传Bitmap对象即可) /** * ...

  2. ios客户端base64上传图片到java服务器遇到的问题

    由于base64位包含了“+”和“\”两个特殊符号,导致ios编码后上传图片到服务器,服务器解码以后的值会不一致,导致图片损坏. 解决办法:重写Base64类,用“(”和“)”替换“+”和“\”两个特 ...

  3. php base64上传图片

    php实现base64图片上传方式 本例子中没有采用File Post上传文件方式!原理一样,为了更加的理解base64 选择将其输出在文本域中,并提交至服务器!运用到项目中建议采用提交File方式. ...

  4. c# API接受图片文件以Base64格式上传图片

    /// base64上传图片 /// </summary> /// <returns>成功上传返回上传后的文件名</returns> [HttpPost] publ ...

  5. iOS上传图片和视频(base64和file)

    前言:iOS开发中经常会使用到图片和视频上传及保存到相册,下面我讲介绍视频图片的两种上传服务器的方法.以阿里云的OSS服务器为例. 友情提示:上传图片方法在APP中使用很广泛,最好单独写一个图片上传的 ...

  6. EF+LINQ事物处理 C# 使用NLog记录日志入门操作 ASP.NET MVC多语言 仿微软网站效果(转) 详解C#特性和反射(一) c# API接受图片文件以Base64格式上传图片 .NET读取json数据并绑定到对象

    EF+LINQ事物处理   在使用EF的情况下,怎么进行事务的处理,来减少数据操作时的失误,比如重复插入数据等等这些问题,这都是经常会遇到的一些问题 但是如果是我有多个站点,然后存在同类型的角色去操作 ...

  7. 图片base64上传时可能遇到的问题

    base64上传图片时服务器接到的值可能会丢失字符串 解决方法如下:(分为单个上传和多个上传) <?php $BASE_DIR = "../"; //文件上传 $img = ...

  8. 项目中使用的图片上传方法,base64存本地

    //生成健康报告 public function uploadJkbg(Request $r) { $data = $r->all(); $jkbg['jkbg_ctime'] = time() ...

  9. base64码通过http传输 +号变 空格 问题解决

    通过七牛云base64上传图片,通过官方示例上传成功后,根据示例改了一个controller. 通过前端往后端传base64码形式进行测试.死活不通过,七牛报400. 仔细排查后发现,示例转换的bas ...

随机推荐

  1. javascript函数 第14节

    <html> <head> <title>function</title> </head> <body> 1.函数形式<b ...

  2. 04_XML_04_XMLDTD语法

    [DTD语法约束细节] * 元素定义 * 属性定义 * 实体定义 [1.元素定义] 在DTD文档中使用ELEMENT声明一个XML元素,语法格式如下所示: <!ELEMENT   元素名称  元 ...

  3. Codevs 1225 八数码难题

    1225 八数码难题 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题目描述 Description Yours和zero在研究A*启发式算法.拿到一道经典的 ...

  4. caffe源码阅读(3)-Datalayer

    DataLayer是把数据从文件导入到网络的层,从网络定义prototxt文件可以看一下数据层定义 layer { name: "data" type: "Data&qu ...

  5. bzoj1090:[SCOI2003]字符串折叠

    思路:区间dp,令f[l][r]表示l到r的答案,于是f[l][r]=min(f[l][mid],f[mid+1][r]),如果能折叠f[l][r]=min(f[l][r],f[l][l+len-1] ...

  6. J2EE中的HttpSession

    J2EE中的HttpSession总结: ①什么是session? session是服务器端技术,利用这个技术,服务器在运行时可以为每一个浏览器创建一个共享的session对象,由于 session为 ...

  7. php简简单单搞定中英文混排字符串截取,只需2行代码!

    提到中英文混排计数.截取,大家首先想到的是ascii.16进制.正则匹配.循环计数. 今天我给大家分享的是php的mb扩展,教你如何轻松处理字符串. 先给大家介绍用到的函数: mb_strwidth( ...

  8. xe6+firedac连接sybase

    一.Win7 X64系统安装sybase odbc: 1.  下载对应包至c:\system_odbc(文件夹名自己取,在后面注册表内容需要用到): 2.  将值信息写入到注册表内: Windows ...

  9. cocos2d-x笔记4: TextField不能删除内容,以及我的解决办法。。。

    3.0正式版,win32下,TextField按下backspace键不能删除内容.网上搜了下,很早就有的问题了,正式版了竟然还不解决... 真心无力吐槽啊!!!这种巨大而又明显的Bug... 从昨天 ...

  10. XE5 安装破解

    以下转载自:  盒子 不可以将本破解补丁分享到国外网站.论坛中!低调啊! 本破解补丁只适合中国大陆地区的Delphi.C++Builder爱好者和开发者! 本破解补丁只可用于个人研究交流使用,不得做商 ...