在前端操作过程中,上传文件,图片是不可避免的,但有时候用户在前端页面操作完再上传,我们并没有文件对象,一般我们拿到的是 canvas image 等,有时候还可能是 base64 编码,这时我们该怎么上传文件呢?
我们先来理清楚一个关系
1 | url/base64 → Image → canvas → base64 → File |
编码实现
1 | function urlToImgAsync(url) { |
1 | function imgToCanvas(img) { |
1 | function canvasToData(canvas) { |
1 | function dataToFile(data, file = 'file') { |
1 | function fileToUrlAsync(file) { |
任意组合示例:
1 | canvasToData(imgToCanvas(await urlToImgAsync(`https://xxx.com/img.png`))); |