高效率,将上传图片至服务器
2016-07-04 11:40
253 查看
从上一篇文章中,知道了如何获取本地图片路径并显示在界面上。
1,将获取到的文件转为base64位
2,将base64图片格式转为图片文件保存到服务器上,或直接保存base64格式(这个看自己的需求咯)
js:
function appendFile(path){//将获取到的文件转为base64位,传入图片路径
var img = new Image();
img.src = path; // 传过来的图片路径在这里用。
img.onload = function () {
var that = this;
//生成比例
var w = that.width,
h = that.height,
scale = w / h;
w = 480 || w; //480 现在手机随便拍张照片都几M,所以压缩一下! 你想压缩到多大,改这里
h = w / scale;
//生成canvas
var canvas = document.createElement('canvas');//创建画布绘画图片
var ctx = canvas.getContext('2d');
$(canvas).attr({width : w, height : h});
ctx.drawImage(that, 0, 0, w, h);
var base64 = canvas.toDataURL('image/jpeg', 1 || 0.8 ); //1最清晰,越低越模糊。有一点不清楚这里明明设置的是jpeg。弹出 base64 开头的一段 data:image/png;却是png。
//base64 ------------>这个就是图片base64格式了
}
}
java:
BASE64Decoder decoder = new BASE64Decoder();
FileOutputStream write = new FileOutputStream(new File("C:/xx/test2.png"));//文件保存地址
byte[] decoderBytes = decoder.decodeBuffer(urlbase64.toString());//转为字节
write.write(decoderBytes);//用IO写出来就行啦
1,将获取到的文件转为base64位
2,将base64图片格式转为图片文件保存到服务器上,或直接保存base64格式(这个看自己的需求咯)
js:
function appendFile(path){//将获取到的文件转为base64位,传入图片路径
var img = new Image();
img.src = path; // 传过来的图片路径在这里用。
img.onload = function () {
var that = this;
//生成比例
var w = that.width,
h = that.height,
scale = w / h;
w = 480 || w; //480 现在手机随便拍张照片都几M,所以压缩一下! 你想压缩到多大,改这里
h = w / scale;
//生成canvas
var canvas = document.createElement('canvas');//创建画布绘画图片
var ctx = canvas.getContext('2d');
$(canvas).attr({width : w, height : h});
ctx.drawImage(that, 0, 0, w, h);
var base64 = canvas.toDataURL('image/jpeg', 1 || 0.8 ); //1最清晰,越低越模糊。有一点不清楚这里明明设置的是jpeg。弹出 base64 开头的一段 data:image/png;却是png。
//base64 ------------>这个就是图片base64格式了
}
}
java:
BASE64Decoder decoder = new BASE64Decoder();
FileOutputStream write = new FileOutputStream(new File("C:/xx/test2.png"));//文件保存地址
byte[] decoderBytes = decoder.decodeBuffer(urlbase64.toString());//转为字节
write.write(decoderBytes);//用IO写出来就行啦
相关文章推荐
- 【考试系统运维】——管理至上
- composer win7环境下的安装和使用
- linux后台运行和关闭、查看后台任务
- 结构体中用CString的请注意了,不能使用memset()函数来初始化结构体
- Android系统Recovery工作原理之使用update.zip升级过程分析(三)---Android系统的三种启动模式
- shell实现自动登录服务器
- [改善Java代码]枚举项的数量限制在64个以内
- Android ToolBar 使用总结
- 消息总线——EventBus
- JSP中MySQL数据添加/修改/删除
- 微服务架构(Microservices)
- Android SeekBar使用
- Oracle PL/SQL入门
- LeetCode - 125. Valid Palindrome
- Training Very Deep Networks--Highway Networks 论文笔记
- Java Web实战05--Spring之bean引用
- Maven单元测试报告及测试覆盖率
- PHP开发中最常见的10个错误
- Sublime Text 无法使用Package Control或插件安装失败的解决方法
- Linux操作系统:文件搜索命令