import axios from "axios";
export const imageUrlToFile = async (url, fileName) => {
try {
// 使用axios获取网络图片数据
const response = await axios.get(url, { responseType: 'arraybuffer' });
const imageData = response.data;
// 将图片数据转换为Blob对象
const blob = new Blob([imageData], { type: response.headers['content-type'] });
// 创建一个新的File对象
const file = new File([blob], fileName, { type: blob.type });
return file;
} catch (error) {
console.error('将图片转换为File对象时发生错误:', error);
throw error;
}
}
// 组件中调用
import { imageUrlToFile } from '@/utils/tool.js'
const imgUrl = ref('https://lvgunongye.cn/danjuan-api/profile/upload/2024/05/31/142520.png') // 网络图片地址
const publish = () => {
imgUrl.value = await imageUrlToFile(imgUrl, 'file') // 第二个参数是文件对象名,这样就拿到了file对象格式的数据
}