2016-01-27 1 views
0

Je veux télécharger le fichier d'image de mon téléphone portable sur Android au serveur. J'ai l'URL et je dois envoyer le fichier d'image dans le dossier «classé» J'utilise robospice avec robospice-google-http-client. Mon code ressemble à ceci:Upload image Fichier au serveur qui fonctionne sur php

public class LoadFileOnServerRequest extends GoogleHttpClientSpiceRequest<LoadFileModel> { 

HashMap<String, Object> postParam; 

public LoadFileOnServerRequest(File file) { 
    super(LoadFileModel.class);  

    postParam = new HashMap<>(); 
    postParam.put("file", file); 

    setRetryPolicy(null); 
} 

@Override 
public LoadFileModel loadDataFromNetwork() throws Exception { 

    GenericUrl genericUrl = new GenericUrl("http://testwb/ajax_scripts/file.php"); 
    HttpContent content = new UrlEncodedContent(postParam); 
    HttpRequest request = buildPostRequest(genericUrl, content); 
    request.setParser(new JacksonFactory().createJsonObjectParser()); 
    HttpResponse response = request.execute(); 

    return response.parseAs(getResultType()); 
} 

private HttpRequest buildPostRequest(GenericUrl genericUrl, HttpContent content) throws IOException { 
    System.setProperty("http.keepAlive", "false"); 
    HttpRequest request = getHttpRequestFactory().buildPostRequest(genericUrl, content); 
    customHttpHeader(request); 
    return request; 
} 

private void customHttpHeader(HttpRequest request) { 
    request.getHeaders().setAcceptEncoding("gzip, deflate"); 
    request.getHeaders().setAccept("*/*"); 
    request.getHeaders().setContentType("multipart/form-data; boundary=----WebKitFormBoundarycITo9o2o3NbGvjGm"); 
} 

Mais le serveur ne voit pas le fichier. Il voit ma demande, mais sans fichier. Lorsque j'envoie un fichier sur cette URL via le client REST dans le navigateur, je reçois une bonne réponse avec un lien. Ce que je fais mal? peut-être une erreur dans le côté serveur?

Répondre

1

Cet exemple simple pour télécharger un fichier sur le serveur peut vous aider.

Il suffit de jeter un oeil à here

Vous pouvez apporter d'autres modifications en fonction de vos besoins