将url转化成file文件
letimg="https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=508387608,2848974022&fm=26&gp=0.jpg";//imgurl就是你的圖片路徑
letimage=newImage();
image.src=img;
letself=this;
image.setAttribute("crossOrigin","Anonymous");
image.onload=function(){
varbase64=self.getBase64Image(image);
//document.getElementById("img")['src']=base64;
varformData=newFormData();
//轉(zhuǎn)換base64到file
varfile=self.btof(base64,"test");
console.log(file);
file.url=self.initForm["coverUrl"];
self.fileList.push(file);
console.log(file)
formData.append("imageName",file);
};
/**url轉(zhuǎn)換成img*/
getBase64Image(img):any{
varcanvas=document.createElement("canvas");
canvas.width=img.width;
canvas.height=img.height;
varctx=canvas.getContext("2d");
ctx.drawImage(img,0,0,img.width,img.height);
varext=img.src.substring(img.src.lastIndexOf(".")+1).toLowerCase();
vardataURL=canvas.toDataURL("image/"+ext);
returndataURL;
}
btof(data,fileName){
constdataArr=data.split(",");
constbyteString=atob(dataArr[1]);
constoptions={
type:"image/jpeg",
endings:"native"
};
constu8Arr=newUint8Array(byteString.length);
for(leti=0;i<byteString.length;i++){
u8Arr[i]=byteString.charCodeAt(i);
}
returnnewFile([u8Arr],fileName+".jpg",options);
}
親測有效,但是你的服務器地址得設置可以跨域,否則toDataUrl不能使用
總結(jié)
以上是生活随笔為你收集整理的将url转化成file文件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SQL Server数据库排序规则
- 下一篇: 编码文件AndroidStudio初体验