[英]error while uploading file to php server using retroft android
我試圖使用Retroft Android將文件上傳到服務器。
我的問題是當我上傳文件時不起作用,但是當我上傳圖像時它就起作用了嗎? 我怎么解決這個問題 ?
上傳功能
private void uploadImage() {
progressDialog = new ProgressDialog(context);
progressDialog.setMessage(getString(R.string.wait_plz));
progressDialog.setCancelable(false);
progressDialog.show();
API_POST service = RetroClient.getApiService();
File file = new File(selectedFilePath);
RequestBody requestFile = RequestBody.create(MediaType.parse("multipart/form-data"), file);
MultipartBody.Part body = MultipartBody.Part.createFormData("uploaded_file", file.getName(),
requestFile);
Call<Result> resultCall = service.uploadImageSTudyPlain(body);
resultCall.enqueue(new Callback<Result>() {
@Override
public void onResponse(Call<Result> call, Response<Result> response) {
if(response.isSuccessful())
{
Log.d("Status",response.body().getStatus()+"");
Log.d("msg",response.body().getMsg()+"");
if (progressDialog.isShowing()) {
progressDialog.dismiss();
}
}else
{
Toast.makeText(context, "false", Toast.LENGTH_SHORT).show();
}
}
@Override
public void onFailure(Call<Result> call, Throwable t) {
if (progressDialog.isShowing()) {
progressDialog.dismiss();
}
}
});
從設備中選擇文件
public void showImagePopup() {
Intent intent = new Intent();
intent.setType("*/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent,"Choose File to Upload.."),1);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(resultCode == Activity.RESULT_OK){
if(requestCode == 1){
if(data == null){
//no data present
return;
}
Uri selectedFileUri = data.getData();
selectedFilePath = FilePath.getPath(this,selectedFileUri);
if(selectedFilePath != null && !selectedFilePath.equals("")){
tvFileName.setText(selectedFilePath);
}else{
Toast.makeText(this,"Cannot upload file to server",Toast.LENGTH_SHORT).show();
}
}
}
}
您應該設置正確的文件類型:
RequestBody requestFile = RequestBody.create(
MediaType.parse(getContentResolver().getType(file.toURI())),
file);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.