小程序选择图片直接转base64点一个方法。



  • 新的微信里出现了
    【FileSystemManager.readFile(Object object)】方法

    可以直接指定读取文件的编码格式。

    那么filePath使用chooseImage 获得的文件零时路径 不就可以获得 base64 的图片文件了么?

    试了一下 以下代码可行

    insertImage(event) {
    		console.log('InsertImg', event);
    		Taro.chooseImage({
    			count: 1,
    			sizeType: [ 'original', 'compressed' ],
    			sourceType: [ 'album', 'camera' ]
    		})
    			.then(async (res) => {
    				let file = await fileToBase64(res.tempFilePaths[0]);
    				console.log(file);
    				if (file) {
    					this.EditorContext.insertImage({ src: `data:image.jpeg;base64,${file}` });
    				}
    			})
    			.catch((err) => {
    				console.error(err);
    			});
    		// this.EditorContext.insertImage();
    	}
    
    
    export const fileToBase64 = (filePath) => {
    	return new Promise((resolve, reject) => {
    		let fileManager = Taro.getFileSystemManager();
    		fileManager.readFile({
    			filePath,
    			encoding: 'base64',
    			success: (e: any) => {
    				resolve(e.data);
    			}
    		});
    	});
    };
    
    

登录后回复