以前做过的上传图片,要么是用的插件,用么就是用的用的定义好的接口,今天自己做项目时第一次遇到上传图片的需求。
本来是直接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
| 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)); } };
$('.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值