使用base64上传图片

以前做过的上传图片,要么是用的插件,用么就是用的用的定义好的接口,今天自己做项目时第一次遇到上传图片的需求。
本来是直接formData放表单里面跟着提交的,但是发现提交到后台后下载下来的文件是0kb,后台弄了很久都没解决方案,于是就用base64来上传图片了。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
//图片转成base64
function readAsDataURL(parm, file) {
if (!file) {
return false;
}
var reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = function(e) {
var index_local = e.target.result.indexOf(',');
console.log(index_local);
$("input[name='" + parm + "']").val(e.target.result.substring(index_local + 1));//此处删除了base64头部的信息
}
};
//上传图片并显示
$('.upload_img_content_file').change(function() {
let img = this.files[0];
let img_src;
if (img.type.indexOf('image') < 0) {
alert('请选择图片类型文件');
return false;
}
//判断兼容性
if (window.navigator.userAgent.indexOf('Chrome') > 0 || window.navigator.userAgent.indexOf('Safari') > 0) {
img_src = window.webkitURL.createObjectURL(img);
} else {
img_src = window.URL.createObjectURL(img);
}
$(".upload_img_content").html(`<img src=${img_src}>`);
readAsDataURL("logoimg_base64", img);
})

这里有demo记得打开f12看input里面的value值


使用base64上传图片
https://xypecho.github.io/2018/02/01/使用base64上传图片/
作者
很青的青蛙
发布于
2018年2月1日
许可协议