1

Ich versuche ein Bild auf meiner phonegap App zu machen und benutze dann das FileTransfer Plugin um es auf meinen Server hochzuladen. Ich bekomme Fehler Code 1, aber es gibt keine andere Erklärung - das ist sehr frustrierend. Ich habe jedes Stück Dokumentation und Blog, das dem Menschen bekannt ist, ohne Glück durchforstet.Cordova FileTransfer Plugin Fehlercode 1 für Bildupload

Ich benutze einen einfachen LAMP-Server und es gibt mir weiterhin einen http 500-Code. Ich bin 99.9% sicher, dass dieser Fehler für meinen Server spezifisch ist, weil ich dies mit einem anderen Webserver von mir getestet habe und der Code gut funktioniert. Hier ist die Antwort:

{"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"} 

Unten ist mein Front-End-js Code:

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); 
} 

Und hier ist mein Back-End-PHP-Code, der aufgerufen wird (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

Haben Sie Ihre Serverkonfiguration überprüft? Führen Sie einen einfachen Trick aus, wenn Sie eine große Datei mit der Funktion move_uploaded_file() in PHP hochladen. 1) Erstellen Sie eine .htaccess-Datei im Stammordner des Webservers. 2) Fügen Sie den folgenden Code in die .htaccess-Datei ein und speichern Sie sie. 'php_value upload_max_filesize 8M php_value post_max_size 8M php_value max_execution_time 200 php_value max_input_time 200' Oder diese Datei in der php.ini ändern und die Konfiguration einstellen – Deepak

+0

Ich dachte, es muss mit der Größe tun können ... aber ich gerade umgesetzt Dies und immer noch das gleiche Ergebnis. Ich bin mir nicht sicher, was ich noch versuchen soll? Ich versuche base64encode das Bild und lade es mit Ajax ... Ich hoffe, dass funktioniert – brdeav39

+0

Ich denke, das geschieht wegen Max Upload size.try Upload mit kleiner size.or überprüfen Sie Ihre Upload-Verzeichnis Pfad & Ordner Erlaubnis – Deepak

Antwort

1

Dies endete ein Problem der Bildgröße. Ich arbeitete an diesem Projekt für eine Universität und ihre Server haben viel Sicherheit installiert - eine dieser Sicherheitskonfigurationen hatte eine sehr kleine Dateigröße, die die Uploads blockierte. Ich entdeckte dies, indem ich einige der Protokolldateien im Verzeichnis /var/log/ scannte.

Verwandte Themen