我正在開發一款類似OLX的Android應用程序,允許用戶添加廣告和課程從圖庫中選擇圖片上傳到我的服務器上。但上傳大圖需要很長時間。如何在Android應用程序中更快地上傳圖片?
我該如何解決這個問題?
我正在使用排球圖書館上傳圖像。有沒有更好的庫?
我正在開發一款類似OLX的Android應用程序,允許用戶添加廣告和課程從圖庫中選擇圖片上傳到我的服務器上。但上傳大圖需要很長時間。如何在Android應用程序中更快地上傳圖片?
我該如何解決這個問題?
我正在使用排球圖書館上傳圖像。有沒有更好的庫?
使用本
Retrofit retrofit = new Retrofit.Builder().client(okHttpClient).baseUrl(domain)
.addConverterFactory(GsonConverterFactory.create()).build();
Service service = retrofit.create(Service.class);
RequestBody requestBody = RequestBody.create(MediaType.parse("*/*"), file);
final MultipartBody.Part fileToUpload = MultipartBody.Part.createFormData("file", file.getName(), requestBody);
final RequestBody filename = RequestBody.create(MediaType.parse("text/plain"), file.getName());
Call<ServerResponse> upload = service.uploadFile(fileToUpload, filename);
upload.enqueue(new Callback<ServerResponse>() {
@Override
public void onResponse(Call<ServerResponse> call, final Response<ServerResponse> response) {
final ServerResponse serverResponse = response.body();
if (serverResponse.getSuccess()) {
//Handle Response
}
}
@Override
public void onFailure(Call<ServerResponse> call, Throwable t) {
if(t instanceof SocketTimeoutException){
Toast.makeText(getApplicationContext(), "Unable To Upload\nError: Socket Time out. Please try again", Toast.LENGTH_LONG).show();
}
t.printStackTrace();
}
});
服務接口
public interface Service {
@Multipart
@POST("path/upload.php")
Call<ServerResponse> uploadFile(@Part MultipartBody.Part file, @Part("file") RequestBody name);
}
Adnan Momin,我認爲你是對的,但似乎更復雜是不是? – aym1781969
@ aym1781969使用https://www.youtube.com/playlist?list=PLvhXArWo3eVxIMKJE5_zU1zb-ZHQISQT_此鏈接進行學習。這很容易 – knownUnknown
你的問題是相當廣泛的,但這裏有一些想法:
你會看到與前兩個點高的性能提升,你可能只看到一點點的改進與最後一點,如果你是從很遠的服務器在地理上。
嘗試使用改造上傳圖片 – knownUnknown
你的圖像轉換爲Base64? –
是的Azhar osws我使用的是base64,我首先將位圖轉換爲字符串,然後發佈到遠程服務器,有時會讓我內存不足 – aym1781969