我正在開發混合移動應用程序。如何從Cordova File Transfer插件獲取mimeType?
在我們選擇或上傳文件時,我們需要從文件中獲取mimeType。
我正在使用Apache FileTransfer。
window.resolveLocalFileSystemURL(fileURI所,resolveOnSuccess,resolveOnFail)
我正在開發混合移動應用程序。如何從Cordova File Transfer插件獲取mimeType?
在我們選擇或上傳文件時,我們需要從文件中獲取mimeType。
我正在使用Apache FileTransfer。
window.resolveLocalFileSystemURL(fileURI所,resolveOnSuccess,resolveOnFail)
file-transfer
不暴露mime類型和其他FileUploadOptions PARAMS。
僅在Windows plugin code上載支持Mimetype自動檢測。
和here is a Jira ticket for this feature CB-5946 - 它也有一些關於Android實現的建議。
你可以從cordova File插件中獲取它。
$cordovaFile.checkFile(uri, '')
.then(function(entry) {
// success
var name = entry.name;
entry.file(function(data) {
// get mime type
var mime = data.type;
alert(mime);
})
}, function(error) {
// error
// show toast
});
在角2我用這個:
export class Plugins {
albums = {
open() : Promise<any> {
return ImagePicker.getPictures({
quality: 100,
maximumImagesCount: 1,
}).then((imgUrls) => {
return imgUrls;
}, (err) => {
if(err.error == "cordova_not_available") {
alert("Cordova is not available, please make sure you have your app deployed on a simulator or device");
} else {
console.log("Failed to open albums: " + err.error);
}
});
},
}
...
@Component({
templateUrl: 'build/pages/home/home.html',
directives: [UploadButton]
})
export class HomePage implements OnInit {
openAlbums =(): void => {
var $self = this;
this._plugins.albums.open().then((imgUrls) => {
imgUrls.forEach((imageUrl: string): void => {
if (imageUrl) {
window.resolveLocalFileSystemURL(imageUrl, function (entry: FileEntry) {
entry.file(file=> {
console.log('mimeType', file.type);
}, ((error:FileError) => console.log(error)));
});
}
});
}); };
resolveLocalFileSystemURL
還給過成功回調的Entry
,我不得不投以FileEntry
以訪問到文件方法,該文件方法返回File
,其延伸具有MIME類型屬性的Blob
。
使用Ionic和Cordova的最新版本時,文件類型沒有類型參數。 –
我得到它的工作是這樣的打字稿及角2:
this._File.resolveLocalFilesystemUrl(somefileUri).then((entry: Entry) => {
if (entry) {
var fileEntry = entry as FileEntry;
fileEntry.file(success => {
var mimeType = success.type;
}, error => {
// no mime type found;
});
}
});
你確定這個工程?我通過了如下的URI:'content:// com.android.providers.media.documents/document/video%3A818',它仍然沒有任何返回。我每次都得到'FileError'。 – KVISH