2012-03-16 2 views
0

Voici mon code javascript phonegap, et, lorsque j'essaye de télécharger un petit fichier avec le chunckedMode = true, la redirection ft.upload sur le gestionnaire d'erreur. Je ne comprends pas vraiment quelle est la source du problème.PhoneGap chunckedMode true Erreur de téléchargement

function uploadFile() { 

    function uploadSuccess(success) 
    { 
    alert('good'); 
    //alert(JSON.stringify(success.response)); 
    } 

    function uploadError(error) 
    { 
    alert('error'); 
    alert(error.response); 
    } 

    var options = new FileUploadOptions(); 
    options.fileKey="document"; 
    options.fileName=file.substr(file.lastIndexOf('/')+1); 
    options.mimeType="application/octet-stream"; 

    var params = new Object(); 
    params.value1 = "test"; 
    params.value2 = "param"; 

    options.params = params; 
    options.chunkedMode = true; 

    var ft = new FileTransfer(); 

    ft.upload(file, "http://myserver/file.php", uploadSuccess, uploadError, options); 
    alert('after up'); 
} 
+0

Votre JS dans le message semble totalement faux - est-ce ce que vous avez réellement dans votre application? Les fonctions de succès et d'erreur sont à l'intérieur de la fonction de téléchargement. D'où obtenez-vous le "fichier"? Aucun paramètre n'est transmis à votre méthode uploadFile. – codemonkey

+0

Le fichier se trouve dans le fichier var, qui est défini dans une autre fonction. Dans mon application, je n'ai aucun problème pour envoyer une image lorsque le chunkedMode est défini sur false (il appelle la fonction uploadSuccess à l'intérieur de la fonction de téléchargement sans problème, pas d'erreur), mais lorsque je l'ai défini le code), il prend la fonction uploadError ... – Yeppao

+0

Y at-il une chance que ce soit un problème avec votre code serveur? J'ai utilisé le téléchargement de fichier avec chunkedMode laissé par défaut (ce qui est vrai) et n'a jamais eu de problèmes. – codemonkey

Répondre

1

J'ai finalement résolu mon problème:

Première étape:

Télécharger NGINX Chunkin Module: https://github.com/agentzh/chunkin-nginx-module

Étape deux:

reconfigure nginx avec - -add-module =/Chemin/vers/le/Module

le réinstaller ..

Troisième étape:

Aller au fichier de configuration vhost ajouter ce (code dans les accolades):

server { 
     chunkin on; 

     error_page 411 = @my_411_error; 
     location @my_411_error { 
      chunkin_resume; 
     } 

     ... 
     } 

Maintenant, votre serveur nginx accepte le transfert de fichiers en mode bloc.