ギャラリーを使用してアップロードする画像にアクセスしています。私は画像uriを直接アップロードしているときに問題はないが、fileEntry(マルチパートアップロードの場合)を使用する必要があるとき、jpgはURIからfileEntryを返さない。 注:私は非同期を使用していますが、次は私がIonic window.resolveLocalFileSystemURLがjpgsで動作しない
var imageUri = await this.takePicture(Object.assign(this.defaultOptions,{sourceType:this.camera.PictureSourceType.SAVEDPHOTOALBUM}));
let newFile = new File([imageUri], "filename");
this.uploadFile(newFile);
画像URIを取得するには、以下を使用しているコードです。たとえば待っていたが、私は、標準的な約束
と同じ問題を持っていますimageUri
try{
return await this.camera.getPicture(options);
}catch(err){
...handle error
}
を返し
takePicture()
するためのコードである
上記のこのコードが正常両方png
とアップロードファイル。
このコードでは、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);
それが唯一のJPGのために、次のエラー
FileError {code: 5}
を返しwindow.resolveLocalFileSystemURL(imgUri, resolve, reject);
ための約束ラッパーです。エラーコードは、jpgのフォーマットに何らかの問題があったことを意味しますか?これはすべてが内部で処理されているので、私には意味をなさない。画像が壊れていないか、何もないので、エラーコードが誤解を招く可能性があると私は信じています。 error code docs
誰でもこの問題が発生しましたか?私はライブアンドロイドデバイス(エミュレータではない)でテストしています。
私はfileEntryにアクセスする必要がないときにイメージをアップロードするためにイメージuriが問題ではないことを示していると感じます。しかし、私がそうするとき、それは特定のファイルタイプpng
だけのために働く。
Android搭載端末でのみ同じ問題が発生しています。私は「JPEG」は問題の原因ではないと思う。 – JeffMinsungKim
問題は何と思いますか? @JeffMinsungKim – user3331142
@JeffMinsungKim解決策を見つけました。問題は、jpgs camera.getPictureによって返されるパスがフルパスではありませんでした(pngsがフルパスを返します: 'file://'を含む) – user3331142