.前端页面代码
/**
* 通过图片本地路径获取图片真实大小,并进行压缩
*/
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. PHP下的命令行执行 php -S localhost -t public

    PHP 的命令行模式     以下是 PHP 二进制文件(即 php.exe 程序)提供的命令行模式的选项参数,您随时可以通过 PHP -h 命令来查询这些参数. Usage: php [option ...

  2. (转)原始图像数据和PDF中的图像数据

    比较原始图像数据和PDF中的图像数据,结果见表1.1.表1.1中各种“解码器”的解释见本文后续的“PDF支持的图像格式”部分,“PDF中的图像数据”各栏中的数据来自开源的PdfView.如果您有兴趣查 ...

  3. gcc-常见命令和错误

      一:编译过程的4个阶段:预处理,编译,汇编,链接; 1:最常用的方式 gcc hello.c -o hello 2:预处理后停止编译 gcc -E hello.c -o hello.i(.i通常为 ...

  4. 就是这么简单(续)!使用 RestAssuredMockMvc 测试 Spring MVC Controllers

    就是这么简单(续)!使用 RestAssuredMockMvc 测试 Spring MVC Controllers 转载注明出处:http://www.cnblogs.com/wade-xu/p/43 ...

  5. UNIX网络编程-基本API介绍(二)

    参考链接:http://www.cnblogs.com/riky/archive/2006/11/24/570713.aspx 1.getsockname和getpeername getsocknam ...

  6. C++ 删除字符串的两种实现方式

    C++实现删除给定字符串的给定字符串思路主要有这么几种实现方式: 1.KMP算法2.用STL的string的 find,然后用erase3.用C的strstr找到字串位置,然后用strncpy写到新串 ...

  7. 在django中使用自定义标签实现分页功能

    效果演示: github地址:https://github.com/mncu/django_projects/tree/master/django_projects/pagination_test 本 ...

  8. 命令行启动win7系统操作部分功能

    control.exe /name microsoft.folderoptions 启动资源管理器的 文件夹属性 选项卡 control.exe /name Microsoft.AddHardware ...

  9. Linux内核分析第二周学习总结:操作系统是如何工作的?

    韩玉琪 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.函数调用堆栈 ...

  10. JS复习

    一.三个对话框1.alert("")警告对话框2.confirm("")确定对话框3.prompt("","")可输入内 ...