2015-12-16 2 views
0

Я использую Phonegap 5.3.1 и Android 22. Я пытаюсь использовать Filegansfer api для телефонной передачи для передачи изображений на удаленный сервер.Доступ к файлам изображений на Android-устройстве с использованием схемы phonegap

var options = new FileUploadOptions();   
options.fileKey="file"; 
options.fileName=imageData.substr(imageData.lastIndexOf('/')+1); 
alert("The filename here is : " + imageData); 

так вот ImageData печатает

content //com.android.providers.media.documents/document/image/image%3A53 

и далее ниже код

imageData.substr(imageData.lastIndexOf('/')+1); 

ли назначить options.fileName = "изображение% 3A53"

Это не имя изображения, которое у меня есть на устройстве. По-моему, это вызывает проблему.

javascript, используемый для запуска плагина FileTransfer, говорит, что файл успешно передан, но я не могу найти файл на сервере (запуск PHP).

Ответ сервера выглядит следующим образом:

получил ответ от сервера

Array 
    (
     [file] => Array 
      (
       [name] => image%3A53 
       [type] => image/jpeg 
       [tmp_name] => /tmp/php8qjZXN 
       [error] => 0 
       [size] => 137490 
     ) 
) 

Также несколько сообщений говорят: Phonegap android unable to upload image using fileTransfer

Вы не можете использовать imageUri, что вы получите от успеха обратного вызова камеры в FileTransfer, вы должны сначала разрешить uri как имя файла:

navigator.camera.getPicture(function(imageURI){ 

     window.resolveLocalFileSystemURI(imageUri, function(fileEntry) { 
      fileEntry.file(function(fileObj) { 

       var fileName = fileObj.fullPath; 

       //now use the fileName in your method 
       //ft.upload(fileName ,serverURL + '/ajax.php?fname=appuploadspotimage'...); 

      }); 
     }); 
}); 

Любая помощь будет высоко оценена.

+0

Правильный размер файла 137490 байт? Если это так, я бы сказал, что ваш сервер получает файл. Что вы найдете в '/ tmp/php8qjZXN'? –

+0

Размер файла кажется правильным. Также я получаю следующий -bash: cd:/tmp/php8qjZXN: Нет такого файла или каталога – user563101

+0

Можем ли мы увидеть PHP, который обрабатывает запрос и сохраняет файл? –

ответ

0

Я нашел ответ на свой вопрос. Проблема была не на стороне клиента, а на стороне сервера. я упомянул ниже сообщение: fileupload success, but no photos in the server (phonegap android)

Затруднение это «Вы проверили ваши права доступа папки и сценариев Они оба должны иметь один и тот же пользователь/группа Если вы используете Apache, это будет что-то вроде апача?.: apache. Из строки cmd вы можете запустить chown apache: apache upload.php, затем chown -R apache: apache php/"

Функция move_upload_file ([source], [destination]). Путь к папке с изображениями должен находиться где-то в корневом каталоге вашего веб-сайта. Загруженные файлы перемещаются из/tmp в папку для загрузки. Эта папка (и скрипт, выполняющий работу) должна принадлежать apache.

Я сделал разрешения, как указано выше, и это сработало. Спасибо всем за ваши своевременные ответы.

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