2016-05-04 3 views
0

Я хочу получить имя файла и собственный путь выбранного изображения из галереи. Нижеприведенный код отлично работает для Android Но, дает null в IOS.Изображение из галереи дает нулевой объект в IOS для Appcelerator

Titanium.Media.openPhotoGallery({ 
success : function(event) { 
    selectedImage = event.media; 
    //Ti.API.info("image : " + JSON.stringify(selectedImage)); --> Returns {} 
    if (event.mediaType == Ti.Media.MEDIA_TYPE_PHOTO) { 
     //Ti.API.info("selectedImage : " + JSON.stringify(selectedImage)); --> Returns {} 
     //Ti.API.info("selectedImage : " + JSON.stringify(selectedImage.nativePath)); --> Returns null 
     //Ti.API.info("selectedImage.file.name : " + JSON.stringify(selectedImage.file.name)); --> Throws error 
    } 
} 
}); 

Есть ли другой способ получить имя файла, ImageType и nativePath?

Спасибо заранее.

ответ

2

Как вы видели, вы не можете JSON сериализовать blob, чтобы просмотреть все его свойства. И, несмотря на документацию, не кажется, что вы можете получить собственный путь на ios.

Titanium.Media.openPhotoGallery({ 
    success : function(e) { 
     Ti.API.info ("Got image:"); 
     Ti.API.info (" width:  " + e.media.width); 
     Ti.API.info (" height:  " + e.media.height); 
     Ti.API.info (" pixels:  " + e.media.size); 
     Ti.API.info (" bytes:  " + e.media.length); 
     Ti.API.info (" mimeType: " + e.media.mimeType); 
     Ti.API.info (" nativePath: " + e.media.nativePath); 
    } 
}); 

дает мне

[INFO] Got image: 
[INFO] width:  3000 
[INFO] height:  2002 
[INFO] pixels:  6006000 
[INFO] bytes:  4752033 
[INFO] mimeType: image/jpeg 
[INFO] nativePath: null 

Существует свойство файла, связанного с сгустка изображения (это, безусловно, не равно нулю), но я не могу получить доступ к любым свойствам этого файла объекта. И, как вы можете видеть, nativePath возвращается как null.

Тем не менее, вы уверены, что вам нужен родной путь? Мне удалось получить данные изображения, уменьшить его (используя модуль ImageFactory) и отправить его на сервер через HTTP, без знания собственного пути.

+0

'nativePath' (и некоторые другие свойства Blob) доступны только в том случае, если Blob происходит из файла на диске. В случае фотогалереи Blob существует только в памяти, так как у вас нет доступа к исходному файлу в фотогалерее. –

+0

На самом деле, я хочу отобразить imageName выбранного изображения, есть ли способ получить имя? поток, который я хочу, похож, пользователь выбирает изображение из галереи -> Загрузка изображения на сервер -> отображает имя изображения (имя файла), которое было загружено в приложении. –

Смежные вопросы