1.Отображение источника изображения из fileURI в формате ionic
Вы пробовали веб-просмотр?
, если нет, попробуйте выполнить следующие действия, ionic не отображает изображения с файлом: // ..быть localhost: // .. что-то.
, чтобы установить пакет веб-просмотра и преобразовать файл: // URL-адрес в URL-адрес, совместимый с локальным веб-сервером в плагине веб-представления.
ionic cordova plugin add cordova-plugin-ionic-webview
npm install @ionic-native/ionic-webview
использование:
import { WebView } from '@ionic-native/ionic-webview/ngx';
constructor(private webview: WebView) { }
this.camera.getPicture(options).then((imageData) => {
this.image =this.webview.convertFileSrc(imageData);
}, (err) => {
this.err = err;
});
2.Загрузите файл blob на сервер
сначала вам нужно конвертировать файл в blob, а затем добавить к formData.
Примечание: имейте ввиду, что this.image это строка изпуть к файлу не является точным файлом.
загрузка:
Мы должны преобразовать изображение в файл BLOB-объекта и затем отправить его на сервер.
upload(){
let url="https://staging-api.kofluence.com/influencer/v1/profile";
const blobValue = this.dataURItoBlob(this.image);
let postData=new FormData();
postData.append('file',blobValue);
let data:Observable<any>=this.http.post(url,postData);
data.subscribe((result)=>{
console.log(result);
}
);
Преобразование данных в BLOB
private dataURItoBlob(dataURI) {
// convert base64 to raw binary data held in a string
let byteString = atob(dataURI.split(',')[1]);
// separate out the mime component
let mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0];
// write the bytes of the string to an ArrayBuffer
let arrayBuffer = new ArrayBuffer(byteString.length);
let _ia = new Uint8Array(arrayBuffer);
for (let i = 0; i < byteString.length; i++) {
_ia[i] = byteString.charCodeAt(i);
}
let dataView = new DataView(arrayBuffer);
let blob = new Blob([dataView], { type: mimeString });
return blob;
}
Пожалуйста, дайте мне знать, если у нас возникнут какие-либо проблемы с этим кодом.