.前端页面代码
/**
* 通过图片本地路径获取图片真实大小,并进行压缩
*/
function getLocalRealSize(path, callback) {
var img = new Image();
var tempimg = new Image();
img.src = path;
img.onload = function() {
var height = img.naturalHeight;
var width = img.naturalWidth;
img.width = img.naturalWidth;
img.height = img.naturalHeight;
//压缩图片
var canvas = compressImage(img);
tempimg = canvas.toDataURL('image/jpeg'); callback(tempimg);
}
};
/**
* 压缩图片
*/
function compressImage(image) {
var canvas = document.createElement("canvas");
var mwidth = image.width;
var mheight = image.height;
var scale = ;
var i = ;
while (true) {
if (mwidth >> i <= && mheight >> i <= ) {
scale = Math.pow(0.5, i);
break;
}
i += ;
}
canvas.width = mwidth * scale;
canvas.height = mheight * scale;
canvas.getContext("2d").drawImage(image, , , mwidth * scale, mheight * scale);
return canvas;
}
//主页面 车主首页 跳转
document.getElementById("driverindex").addEventListener("tap", function() {
//获取img对象
var OwerImg = document.getElementById("owner-photo-img");
var OwerCardImg = document.getElementById("owner-cardphoto-img");
var OwerLicenceImg = document.getElementById("owner-driver1-img");
var OwerDrivingLicenceImg = document.getElementById("owner-driver2-img");
var CarImg = document.getElementById("owner-car-img");
var AssuranceImg = document.getElementById("owner-sure-img"); var oArray=source.split("|");
var totalCount=imgCount+oArray.length-;
if(totalCount<){
mui.toast("请上传完整信息");
return false;
}
uploadImg();
});
});
// 上传文件
var uploadImg = function() {
var server = imgUrl+'/clientapi/driver/ApplayCertification';
//outSet("开始上传:")
var wt = plus.nativeUI.showWaiting();
var task = plus.uploader.createUpload(server, {
method: "POST",
blocksize: ,
priority:
},
function(t, status) { //上传完成
if (t.state == && status == ) {
wt.close();
//outLine("上传成功:" + t.responseText);
//上传成功,跳转到车主首页
mui.toast('上传成功');
mui.fire(mycarPage, "pageflowrefresh" );
plus.webview.currentWebview().close();
mui.redirect('myaccount-mycar', '../myaccount/mycar.html');
} else {
//outLine("上传失败:" + status);
wt.close();
mui.toast('上传失败');
}
}
);
task.addData("token", UserInfo.token());
task.addData("source", source);
task.start();
}
.C#后台代码
//将base64编码的字符串转为图片并保存
protected string SaveBase64Image(string source, string path, int userID)
{
try
{
var now = DateTime.Now;
string filePath = path + now.ToString("yyyy-MM-dd") + "/" + userID.ToString() + "/";
string fileName = now.ToString("yyyyMMddhhmmssffff") + ".jpg";
Log.Debug("filePath:" + filePath + fileName);
string strbase64 = source.Substring(source.IndexOf(',') + );
strbase64 = strbase64.Trim('\0');
//Log.Debug("strbase64:" + strbase64);
byte[] arr = Convert.FromBase64String(strbase64);
using (MemoryStream ms = new MemoryStream(arr))
{
Log.Debug("进入了MemoryStream");
Bitmap bmp = new Bitmap(ms);
if (!Directory.Exists(Server.MapPath(filePath)))
{
Log.Debug("没有Directory");
Directory.CreateDirectory(Server.MapPath(filePath));
}
//if (!Directory.Exists(filePath))
// Log.Debug("没有Directory");
//Directory.CreateDirectory(filePath);
//新建第二个bitmap类型的bmp2变量。
Bitmap bmp2 = new Bitmap(bmp, bmp.Width, bmp.Height);
//将第一个bmp拷贝到bmp2中
Graphics draw = Graphics.FromImage(bmp2);
draw.DrawImage(bmp, , );
draw.Dispose();
Log.Debug("保存图片前");
bmp2.Save(Server.MapPath(filePath + fileName), System.Drawing.Imaging.ImageFormat.Jpeg);
Log.Debug("保存图片后");
//bmp.Save("test.bmp", ImageFormat.Bmp);
//bmp.Save("test.gif", ImageFormat.Gif);
//bmp.Save("test.png", ImageFormat.Png);
ms.Close();
return filePath + fileName;
}
}
catch (Exception ex)
{
return null;
}
}

C#保存Base64格式图片的更多相关文章

  1. uniapp微信小程序保存base64格式图片的方法

    uniapp保存base64格式图片的方法首先第一要先获取用户的权限 saveAlbum(){//获取权限保存相册 uni.getSetting({//获取用户的当前设置 success:(res)= ...

  2. laravel 存储base64格式图片

    laravel 存储base64格式图片 一.总结 一句话总结: 用正则替换base64图片编码的编码头即可 存储图片的话,用laravel可以用Storage的put方法,原生php可以用file_ ...

  3. 微信小程序 base64格式图片的显示及保存

    当我们拿到如下base64格式的图片(如下图)时, base64格式的图片数据: 如何显示 ? 使用image标签,src属性添加data:image/png;base64, (注意:若imgData ...

  4. C# WEB.API 接收并解析保存base64格式的图片

    using System; using System.Collections.Generic; using System.Drawing; using System.IO; using System. ...

  5. js获取base64格式图片预览上传并用php保存到本地服务器指定文件夹

    html: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...

  6. 保存BASE64编码图片

    1.前端上传用户图片时,一些K数较小图片,头像图标等 .以bass64编码后的字符串传到服务器. 2.服务器接收并保留到本地. // 页面上点击保存 $.post('/imgupload/save', ...

  7. base64格式图片转换为FormData对象进行上传

    原理:理由ArrayBuffer.Blob和FormData var base64String = /*base64图片串*/; //这里对base64串进行操作,去掉url头,并转换为byte va ...

  8. dedecms不能保存jpeg格式图片的解决方法

    方法如下: 进入织梦的后台管理目录,默认是dede文件夹,找到/inc/inc_archives_functions.php文件. 在文件里查找gif|jpg|,我找到了4个, 在它们后面加jpeg的 ...

  9. 微信支付特约商户进件中base64格式图片上传

    微信图片上传接口地址:https://api.mch.weixin.qq.com/v3/merchant/media/upload 1.上传方法 1 using HttpHandlerDemo; 2 ...

随机推荐

  1. Linux下删除空文件,删除指定大小的文件

    Linux下批量删除空文件(大小等于0的文件)的方法: find . -name "*" -type f -size 0c | xargs -n 1 rm -f 用这个还可以删除指 ...

  2. Fragment的陷阱(转)

    以前做过的一个项目,Fragment嵌套高德地图,当再次进入Fragment的时候,会出现奇怪的现象.嵌套的地图会出现滑动不动的情况,起先还以为是高德的bug呢,经过一番研究,终确定这是一个坑. 先对 ...

  3. Hive操作表部分总结

    创建表: create table tableName(time INT,userid BIGINT,url STRING,ip STRING COMMENT 'IP Address of the U ...

  4. Windows下查看进程及结束进程命令[转]

    Windows下查看进程及结束进程命令 1)查看占用8080端口的进程号 >netstat –aon | findstr “8080” 结果:TCP    0.0.0.0:8080        ...

  5. Python第十二章正则表达式

    1.今天学习的f=open("d:\testcase.xml","r")会报错 需要改成f=open("d:\\testcase.xml", ...

  6. 关于view.measure

    在编写下啦刷新的项目代码的时候,在Listview的HeaderView中的head.xml文件中,根布局为RelativeLayout的时候,在计算headerView.measure的时候,出现空 ...

  7. 解决【win10管理员已阻止程序运行】问题时有感

    今天在安装loadrunner11的时候点击setup弹出以下报错 然后试了很多方法,从网上找了各种解决方案:修改UAC.修改本地组策略,均未解决ps:本人电脑是win10家庭中文版. 研究了半天未果 ...

  8. 埃及分数-IDA*

    Description 在古埃及,人们使用单位分数的和(形如1/a的, a是自然数)表示一切有理数.如:2/3=1/2+1/6,但不允许2/3=1/3+1/3,因为加数中有相同的.对于一个分数a/b, ...

  9. js处理用户输入的银行卡号实现四位一段,并且只能输入数字

    其中ABC是输入框的id.type="tel"可直接呼出数字键盘. <input type="tel" maxlength="24" ...

  10. Xcode常用的快捷键有哪些?

    作者:吴白 原文链接:http://www.jianshu.com/p/de7806f6143b 手指在键盘上飞速跳跃,终端上的代码也随着飞舞,是的这确实很酷.优秀的程序员总是这么一群人,他们不拘于现 ...