2012-05-09 11 views
6

Sto usando Phonegap [cordova 1.7.0] per scaricare un file utilizzando Xcode [ios5]. Questo è il codice che sto usando per scaricare il file:Scarica il file Errore 2, FileTransferError.INVALID_URL_ERR

function downloadfile(){ 
    var fileTransfer = new FileTransfer(); 
    console.log('the type of root is:'); 
    fileTransfer.download(
        "http://184.172.195.202:90/ElmNoor/Documents/1.txt", 
        persistent_root.fullPath, 
        function(entry) { 
        alert("I'm Downloading"); 
        console.log("download complete: " + entry.fullPath); 
        }, 
        function(error) { 
        alert("I'm not downloading"); 
        console.log("download error source " + error.source); 
        console.log("download error target " + error.target); 
        console.log("upload error code " + error.code); 
        } 
       );} 

Ma ho codice di errore 2 & non so posso risolverlo?

Questo è il mio registro:

 HelloPhoneGap[933:13403] File Transfer Finished with response code 200 
    HelloPhoneGap[933:13403] [INFO] download error source http://184.172.195.202:90/ElmNoor/Documents/1.txt 
    HelloPhoneGap[933:13403] [INFO] download error target /Users/weekend/Library/Application Support/iPhone Simulator/5.1/Applications/A7883F4B-7678- 4424-A93A-77747297A11E/Documents 
    HelloPhoneGap[933:13403] [INFO] upload error code 2 

ho cambiato l'url, ma ha dato lo stesso errore. Sai cosa c'è che non va?

PS: ho capito il problema & aggiunto la risposta qui sotto =)

Grazie.

risposta

4

Nel caso qualcuno si trova ad affrontare lo stesso problema, ecco la risposta:

Per scaricare un file non si dovrebbe aggiungere il percorso della cartella che sarà scaricato in, si dovrebbe anche aggiungere il percorso del file stesso.

Quindi, se si sta scaricando un'immagine jpg in "Documenti", il percorso del file deve essere: "Documento" + ". Jpg".

ecco il codice dopo la modifica:

function DownloadFile(){ 
    var fileTransfer = new FileTransfer(); 
    var url ="http://www.ranafrog.org.au/f006.jpg"; 
    var folderpath=persistent_root.fullPath+"frog.jpg"; //The path is added here. 
    var onSuccess= function(entry){ 
    console.log("download complete: " + entry.fullPath); 
}; 

var onError=function(error) { 
    console.log("download error source " + error.source); 
    console.log("download error target " + error.target); 
    console.log("upload error code " + error.code); 
}; 

fileTransfer.download(url,folderpath,onSuccess,onError); 
} 

io non non so se quello che sto dicendo è corretta al 100% o meno, ma questo è ciò che ha funzionato per me ,,, quindi spero che aiuta =)

+3

aiuto enorme. Aveva esattamente lo stesso errore, e i documenti non aiutano affatto. Tutto quello che ti danno è "Presumi url variabili contiene un URI valido per un file su un server e filePath è un percorso valido sul dispositivo". Grazie. – XML

+0

Quindi, per utilizzare i nomi var dalla documentazione: fileSystem.root.fullPath + '/frog.jpg'; // manca la barra diretta – pdschuller

0

Siamo spiacenti, ho fatto un errore, il codice di errore 2 dovrebbe essere INVALID_URL_ERR; Quindi, si può provare un URL normale (non 90, ma la porta 80 porta) per la prova,

"http: // 184.172.195.202/ElmNoor/Documents/1.txt ", persistent_root.fullP ath + "/" + "1.txt", // attenzione, deve aggiungere

che dovrebbe scaricare normale.

0

Ciò che questo errore dice è che si dispone di un errore FileTransferError.INVALID_URL_ERR. Ciò significa che il percorso in cui stai tentando di salvare il file scaricato non è corretto.

Controllo incrociato del percorso immettendolo su console.

PS: è possibile verificare che l'URL da cui si sta scaricando sia corretto provandolo nel normale browser.