簡體   English   中英

ngx-image-cropper 輸出具有未定義名稱的屬性文件

[英]ngx-image-cropper Output property file having undefined name

我正在使用ngx-image-cropper在我的 angular 應用程序中裁剪圖像。 我使用輸出屬性返回“文件”,即 (imageCroppedFile) 能夠抓取裁剪后的圖像。 我需要裁剪的圖像有一個文件名,以便我可以使用 name 屬性遍歷后端的文件,而默認情況下它是未定義的。 我怎樣才能給它起個名字? 我嘗試了以下操作:在 FormData 上,

var formData:any = new FormData();
console.log('The number of files is '+files.length);//Logs the number of files is 1

for(var i=0; i<files.length;i++) {
  formData.append("uploads[]", files[i].name, 'image'+i);
  console.log('File name '+ i + ' ' +files[i].name);//Logs File name 0 undefined
}

以及由裁剪觸發的方法

imageCroppedFile(image: File) {
  this.filesToUpload = [];
  console.log('imageCroppedFile method '+image.name+ ' size is '+image.size);// Logs imageCroppedFile method undefined size is 380284
  this.filesToUpload[0]=image;
  console.log('The filesToUpload is '+this.filesToUpload[0].name);// Logs The filesToUpload is undefined
}

上傳器在沒有裁剪器的情況下工作。

將您的文件轉換為 blob,您可以自己命名您的 blob

const blobImage = file as Blob;

參考: https : //github.com/Mawi137/ngx-image-cropper/issues/91#issuecomment-422252629

這對我有用:

// grab the cropped area to file for upload
var b64File = this.dataURLtoFile(this.croppedImage, 'hello.jpg');  // you can name it anything.

dataURLtoFile(dataurl, filename): File {
        var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1],
            bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);
        while(n--){
            u8arr[n] = bstr.charCodeAt(n);
        }
        return new File([u8arr], filename, {type:mime});
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM