(1)中是对这次试用cropper的整体功能实现的代码展示,这篇文章将对在使用过程中遇到的问题进行整理总结。
问题1:使用cropper裁切后得到的是base64图片内容,需要将其转为对象形式的图片文件进行上传。
转换方法如下:
function dataURLtoFile(dataurl, filename = 'file') {
let arr = dataurl.split(',')
let mime = arr[0].match(/:(.*?);/)[1]
let suffix = mime.split('/')[1]
let bstr = atob(arr[1])
let n = bstr.length
let u8arr = new Uint8Array(n)
while (n--) {
u8arr[n] = bstr.charCodeAt(n)
}
return new File([u8arr], `${filename}.${suffix}`, {
type: mime
})
}
调用部分:
var cropCanvas = $('#image').cropper('getCroppedCanvas')
var cropUrl = cropCanvas.toDataURL('image/jpeg', 0.4);
// console.log('cropUrl',cropUrl)//得到的是base64图片地址
var dd = dataURLtoFile(cropUrl)