2011-01-06 3 views
5

Je me suis acheté un site web où il est hébergé sur un serveur linux qui partage une adresse IP en utilisant cpanel. Le problème est, maintenant, je veux utiliser ce code pour télécharger un fichier sur mon site. Chaque fois que j'utilise l'adresse du site comme www.site, j'obtiens une exception disant que l'URL est mal formée. Lorsque j'utilise l'adresse IP (puisqu'il s'agit d'un serveur partagé), je ne trouve pas mon code php car je ne sais pas comment lier mon adresse.Android, http: Comment télécharger un fichier sur un site hébergé par un serveur partagé?

Est-ce que quelqu'un ... quelqu'un sait comment me lier à mon site, juste pour que je puisse télécharger un fichier XML? Vraiment besoin d'aide ici .......

Toute aide serait vraiment appréciée car je n'ai aucune connaissance en matière de mise en réseau.

HttpURLConnection connection = null; 
    DataOutputStream outputStream = null; 
    DataInputStream inputStream = null; 
    String pathToOurFile = "/data/data/test.send/testsend.txt"; 
    String urlServer = "http://www.site.com/filefortransfer.php"; 
    String lineEnd = "\r\n"; 
    String twoHyphens = "--"; 
    String boundary = "*****"; 

    int bytesRead, bytesAvailable, bufferSize; 
    byte[] buffer; 
    int maxBufferSize = 1*1024*1024; 

    try 
    { 
    FileInputStream fileInputStream = new FileInputStream(new File(pathToOurFile)); 

    URL url = new URL(urlServer); 
    connection = (HttpURLConnection) url.openConnection(); 

    // Allow Inputs & Outputs 
    connection.setDoInput(true); 
    connection.setDoOutput(true); 
    connection.setUseCaches(false); 

    // Enable POST method 
    connection.setRequestMethod("POST"); 

    connection.setRequestProperty("Connection", "Keep-Alive"); 
    connection.setRequestProperty("Content-Type", "multipart/form-data;boundary="+boundary); 

    outputStream = new DataOutputStream(connection.getOutputStream()); 
    outputStream.writeBytes(twoHyphens + boundary + lineEnd); 
    outputStream.writeBytes("Content-Disposition: form-data; name=\"uploadedfile\";filename=\"" + pathToOurFile +"\"" + lineEnd); 
    outputStream.writeBytes(lineEnd); 

    bytesAvailable = fileInputStream.available(); 
    bufferSize = Math.min(bytesAvailable, maxBufferSize); 
    buffer = new byte[bufferSize]; 

    // Read file 
    bytesRead = fileInputStream.read(buffer, 0, bufferSize); 

    while (bytesRead > 0) 
    { 
    outputStream.write(buffer, 0, bufferSize); 
    bytesAvailable = fileInputStream.available(); 
    bufferSize = Math.min(bytesAvailable, maxBufferSize); 
    bytesRead = fileInputStream.read(buffer, 0, bufferSize); 
    } 

    outputStream.writeBytes(lineEnd); 
    outputStream.writeBytes(twoHyphens + boundary + twoHyphens + lineEnd); 

    // Responses from the server (code and message) 
    String serverResponseCode = Integer.toString(connection.getResponseCode()); 
    String serverResponseMessage = connection.getResponseMessage(); 

    fileInputStream.close(); 
    outputStream.flush(); 
    outputStream.close(); 

    } 
    catch (Exception ex) 
    { 
     Log.e("MediaPlayer", "error: " + ex.getMessage(), ex); 
    } 
    } 

Répondre

1

Sur Android, il est préférable d'utiliser la classe HttpClient pour les réseaux HTTP plus complexes.

Voici un exemple de téléchargement de fichier multipart: http://rapidandroid.org/wiki/HttpUpload

+0

i; ai essayé le code et mettre dans les HttpComponents apache, le client et le noyau, mais je reçois le type Les org.apache.james. mime4j.message.SingleBody ne peut pas être résolu. Il est référencé indirectement à partir des fichiers .class requis dans la zone de package. Comment puis-je résoudre ceci? Je travaille avec l'android sur eclipse et j'ai essayé de trouver une solution mais je ne peux pas en trouver. – Cid

+0

résolu qu'en ajoutant la bibliothèque org.apache.james.mime4j dans ma référence – Cid

+0

un nouveau problème surgi. Le journal est sorti me montrant ce problème, java.lang.noclassdeffounderror: org.apache.http.entity.mime, et j'ai les bibliothèques, quel est le problème? – Cid

Questions connexes