我正在使用圖庫訪問要上傳的圖像。當我直接上載圖像uri時,我沒有任何問題,但是當我需要使用fileEntry(對於多部分上載)時,jpgs不會從它們的uri中返回fileEntry。 注:我使用異步:等待,但我有一個標準的承諾Ionic window.resolveLocalFileSystemURL不適用於jpgs
例如,以下是我使用來獲取圖像的URI
var imageUri = await this.takePicture(Object.assign(this.defaultOptions,{sourceType:this.camera.PictureSourceType.SAVEDPHOTOALBUM}));
let newFile = new File([imageUri], "filename");
this.uploadFile(newFile);
下面的代碼相同的問題是返回imageUri
try{
return await this.camera.getPicture(options);
}catch(err){
...handle error
}
爲
takePicture()
代碼
上述此代碼成功上傳既png
和jpg
文件。
下面的這段代碼無法僅爲jpg
文件檢索fileEntry。
/**
* Returns a file entry for the image uri provided
* @param imgUri image Uri to get file entry for
*/
private async getFileFromImageUri(imgUri){
try{
var fileEntry = await this.resolveFileAsPromise(imgUri);
}catch(err){
// fileEntry = await this.createNewFileEntry(imgUri);
this.presentToast('Error while selecting image.'); //TODO: images that are .jpg seem to have trouble being resolved to a file.
}
return fileEntry;
}
resolveFileAsPromise(ImgUri);
是一個承諾包裝器window.resolveLocalFileSystemURL(imgUri, resolve, reject);
它返回以下錯誤
FileError {code: 5}
只有JPG格式。錯誤代碼意味着jpg的格式有問題嗎?這對我來說沒有任何意義,因爲所有這些都是在內部處理的。圖像沒有損壞或任何東西,所以它讓我相信,可能的錯誤代碼是誤導? error code docs
有沒有人遇到過這個問題?我正在測試一個活的android設備(不是模擬器)。
我覺得上面的演示表明圖像的uri不是問題,因爲它可以上傳圖像,當我不需要進入fileEntry時。但是,當我這樣做時,它僅適用於特定文件類型png
s。
我只在Android設備上遇到同樣的問題。我認爲'JPEG'不是導致問題的原因。 – JeffMinsungKim
你認爲問題是什麼? @JeffMinsungKim – user3331142
@JeffMinsungKim我找到了一個解決方案。問題是由jpgs camera.getPicture返回的路徑不是完整路徑(pngs返回完整路徑:include'file://') – user3331142