2016-06-12 4 views
0

マルチパートフォームデータを使用してファイルをアップロードする際に問題が発生しました。私はAPIと私の現在のコードでARCのスクリーンショットを与えました。誰も私にこのマルチパートフォームデータを使ってファイルをアップロードする方法を教えてください。マルチパート/フォームデータを使用してファイルをアップロードする手助けが必要です

public class MultiPortRequest<T> extends Request<T> { 

private static final String FILE_PART_NAME = "file"; 

private MultipartEntityBuilder mBuilder = MultipartEntityBuilder.create(); 
private final Response.Listener<String> mListener; 
private final File mImageFile; 
protected Map<String, String> headers; 

public MultiPortRequest(String url,Response.Listener<String> listener, 
          ErrorListener errorListener, 

          File imageFile) 
{ 
    super(Method.POST, url, errorListener); 

    mListener = listener; 
    mImageFile = imageFile; 

    buildMultipartEntity(); 
} 

@Override 
    public Map<String, String> getHeaders() throws AuthFailureError { 
    Map<String, String> headers = super.getHeaders(); 

    if (headers == null 
      || headers.equals(Collections.emptyMap())) { 
     headers = new HashMap<String, String>(); 
    } 

    headers.put("Identity", "rHTYsg8vZ/KWTaGOsy0eMNhngJMiZiK60pd9jAUQ+fI="); 

    return headers; 
} 

private void buildMultipartEntity() 
{ 
    mBuilder.addBinaryBody(FILE_PART_NAME, mImageFile, ContentType.create("multipart/form-data"), 
      mImageFile.getName()); 

    mBuilder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE); 
    mBuilder.setLaxMode().setBoundary("xx").setCharset(Charset.forName("UTF-8")); 
} 

@Override 
public String getBodyContentType() 
{ 
    String contentTypeHeader = mBuilder.build().getContentType().getValue(); 
    return contentTypeHeader; 
} 

@Override 
public byte[] getBody() throws AuthFailureError{ 
    ByteArrayOutputStream bos = new ByteArrayOutputStream(); 
    try{ 
     mBuilder.build().writeTo(bos); 
    } 
    catch (IOException e) 
    { 
     VolleyLog.e("IOException writing to ByteArrayOutputStream bos, building the multipart request."); 
    } 

    return bos.toByteArray(); 
} 

@Override 
protected Response<T> parseNetworkResponse(NetworkResponse response){ 
    try { 
     String result = null; 
     result = new String(response.data, HttpHeaderParser.parseCharset(response.headers)); 
     return (Response<T>) Response.success(new JSONObject(result), HttpHeaderParser.parseCacheHeaders(response)); 
    } catch (UnsupportedEncodingException e) { 
     return Response.error(new ParseError(e)); 
    } catch (JSONException je) { 
     return Response.error(new ParseError(je)); 
    } 
} 

@Override 
protected void deliverResponse(T response){ 
    mListener.onResponse(response.toString()); 
    Log.v("yes", String.valueOf(mListener)); 
} 
} 
+0

uが私は、サーバーにファイルをアップロードするためのボレーライブラリを使用しようとしているアンドロイド –

+0

からファイルをアップロードする必要があります。しかし、毎回私は応答ファイルが見つかりませんが見つかりません! –

+0

https://gist.github.com/anggadarkprince/a7c536da091f4b26bb4abf2f92926594 – USKMobility

答えて

関連する問題