1

Я пытаюсь сделать снимок в своем приложении phonegap, а затем использовать плагин FileTransfer для загрузки его на свой сервер. Я получаю код ошибки 1, но нет другого объяснения - это ОЧЕНЬ расстраивает. Я просмотрел каждую документацию и блог, известные человеку без везения.Кордова FileTransfer Плагин код ошибки 1 для загрузки изображения

Я использую базовый сервер LAMP, и он продолжает давать мне код http 500. Я 99.9% уверен, что эта ошибка специфична для моего сервера, потому что я проверил это с другим веб-сервером, и код работает нормально. Вот ответ:

{"code":1,"source":"file:///storage/emulated/0/Android/data/io.cordova.xxappxx/cache/1477607161788.jpg","target":"https://server.com/php/uploadPhoto.php","http_status":500,"body":"\t","exception":"https://server.com/php/uploadPhoto.php"} 

Ниже мой передний конец кода расслоение плотной:

function uploadPhoto(imageURI) { 
    var options = new FileUploadOptions(); 
    options.fileKey="file"; 
    options.fileName=imageURI.substr(imageURI.lastIndexOf('/')+1); 
    alert(options.fileName); 
    options.mimeType="image/jpeg"; 

    var params = {}; 
    params.value1 = sessionStorage.getItem("token"); 
    options.params = params; 
    options.chunkedMode = false; 
    options.headers = {Connection: "close"}; 

    var ft = new FileTransfer(); 
    ft.upload(imageURI, "https://servername.com/php/uploadPhoto.php", function(result){ 
    console.log(JSON.stringify(result)); 
    }, function(error){ 
    console.log(JSON.stringify(error)); 
    }, options, true); 
} 

А вот мой фоновым PHP код, который вызывается (uploadPhoto.php):

<?php 
session_start(); 
header('Access-Control-Allow-Origin : *'); 
$new_image_name = "$userId.jpg"; 
move_uploaded_file($_FILES["file"]["tmp_name"], "/var/img/".$new_image_name); 
?> 
+0

Вы проверили конфигурацию своего сервера? сделайте простой трюк, если вы загружаете большой файл с помощью функции move_uploaded_file() в PHP. 1) Создайте файл .htaccess в корневой папке веб-сервера. 2) Поместите следующий код в сторону файла .htaccess и сохраните его. 'php_value upload_max_filesize 8M php_value post_max_size 8M php_value max_execution_time 200 php_value max_input_time 200' Или изменить в файле php.ini и установить конфигурацию – Deepak

+0

я думал, что это, возможно, придется делать с размером ... но я просто реализован это и по-прежнему получает тот же результат. Я не уверен, что еще попробовать? Я пытаюсь загрузить base64encode и загрузить его с помощью ajax ... Я надеюсь, что это работает – brdeav39

+0

Я думаю, что это происходит из-за максимальной загрузки size.try, загружая с меньшим размером. Или повторно проверьте ваш путь к каталогу и папку с папкой – Deepak

ответ

1

Это оказалось проблемой размера изображения. Я работал над этим проектом для университета, и на их серверах установлено много безопасности. Одна из этих конфигураций безопасности имела очень небольшое ограничение размера загрузки файлов, которое блокировало загрузки. Я обнаружил это, просмотрев некоторые файлы журналов в каталоге /var/log/.