java filebody出错_java-FileNotFoundException打开失败:Samsung设备上...

我想通过从文件管理器中选择文件来将文件上传到服务器,所以我通过使用此代码单击“按钮”来打开文件管理器,

button_upload_attachment.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

String[] galleryPermissions = {android.Manifest.permission.READ_EXTERNAL_STORAGE, android.Manifest.permission.WRITE_EXTERNAL_STORAGE};

if (EasyPermissions.hasPermissions(CIBILCaptureandUPLOAD.this, galleryPermissions)) {

Intent intent = new Intent();

intent.setType("*/*");

intent.setAction(Intent.ACTION_GET_CONTENT);

startActivityForResult(intent, 1);

} else {

EasyPermissions.requestPermissions(this, "Access for storage",

101, galleryPermissions);

}

}

});

和onActivityResult方法,我已经做了类似的事情来获取文件的路径,并让UploadToserver函数可以上传

@Override

public void onActivityResult(int requestCode, int resultCode, Intent data) {

//ImagesData = data;

try {

// When an Image is picked

if (requestCode == RESULT_LOAD_IMG && resultCode == RESULT_OK

&& null != data) {

Uri contentUri=data.getData();

Log.e("bbbbbbbbbbbbbb", contentUri.toString());

if(contentUri.toString().endsWith(".png")||contentUri.toString().endsWith("jpg") ||

contentUri.toString().endsWith(".pdf")){

photoFile= new File(contentUri.getPath());

if (photoFile.exists()) {

Log.e("photoFile", "File Exists");

}

if (photoFile != null) {

new AsyncTask() {

ProgressDialog pd;

@Override

protected void onPreExecute() {

pd = ProgressDialog.show(CIBILCaptureandUPLOAD.this, "", "Compressing...");

Log.e("PreExecute", "Compressing");

}

@Override

protected File doInBackground(String[] params) {

return photoFile;

}

@Override

protected void onPostExecute(File result) {

pd.dismiss();

if (result != null) {

new CIBILCaptureandUPLOAD.UploadFileToServer().execute(result);

}

}

}.execute("");

}

}else {

String[] filePathColumn = {MediaStore.Images.Media.DATA};

Cursor cursor = getContentResolver().query(contentUri,

filePathColumn, null, null, null);

int columnIndex = cursor.getColumnIndex(filePathColumn[0]);

String filePath = "";

if (cursor.moveToFirst()) {

filePath = cursor.getString(columnIndex);

}

Log.e("PATH", filePath);

photoFile = new File(filePath);

if (photoFile.exists()) {

Log.e("photoFile", "File Exists");

}

if (photoFile != null) {

new AsyncTask() {

ProgressDialog pd;

@Override

protected void onPreExecute() {

pd = ProgressDialog.show(CIBILCaptureandUPLOAD.this, "", "Compressing...");

Log.e("PreExecute", "Compressing");

}

@Override

protected File doInBackground(String[] params) {

return photoFile;

}

@Override

protected void onPostExecute(File result) {

pd.dismiss();

if (result != null) {

new CIBILCaptureandUPLOAD.UploadFileToServer().execute(result);

}

}

}.execute("");

}

}

}

它在其他设备上效果很好,但是在三星设备上

java.io.FileNotFoundException: /document/primary:Xender/other/When Strangers Meet_ 3 in 1 Box - John Harker.pdf: open failed: ENOENT (No such file or directory)

我的上传代码是

私有类UploadFileToServer扩展了AsyncTask {

????????私有静态最终字符串TAG =“ UploadFileToServer”;

// private ProgressBar progressBar;

// private String filePath = null;

// private TextView txtPercentage;

private ProgressDialog pd;

long totalSize = 0;

@Override

protected void onPreExecute() {

// setting progress bar to zero

// progressBar.setProgress(0);

pd = ProgressDialog.show(CIBILCaptureandUPLOAD.this, "", "Loading...");

super.onPreExecute();

}

@Override

protected void onProgressUpdate(Integer... progress) {

// Making progress bar visible

// progressBar.setVisibility(View.VISIBLE);

// updating progress bar value

pd.setMessage("Loading..." + progress[0]);

// progressBar.setProgress(progress[0]);

// updating percentage value

// txtPercentage.setText(String.valueOf(progress[0]) + "%");

}

@Override

protected String doInBackground(File... params) {

return uploadFile1(params[0]);

}

@SuppressWarnings("deprecation")

private String uploadFile1(File file) {

String responseString = null;

HttpClient httpclient = new DefaultHttpClient();

HttpPost httppost = new HttpPost(AppUtill.URL_CIBIL_imageupload);

try {

AndroidMultiPartEntity entity = new AndroidMultiPartEntity(

new AndroidMultiPartEntity.ProgressListener() {

@Override

public void transferred(long num) {

publishProgress((int) ((num / (float) totalSize) * 100));

}

});

File sourceFile = file;// new File(filePath);

entity.addPart("image", new FileBody(sourceFile));

entity.addPart("mid", new StringBody(memberid));

entity.addPart("did", new StringBody("0"));

entity.addPart("fid", new StringBody(formtypeid));

if (app_loadid == null) {

SharedPreferences sharedPreferences = getSharedPreferences("LID", MODE_PRIVATE);

app_loadid = sharedPreferences.getString("lid", "");

entity.addPart("lid", new StringBody(app_loadid));

} else {

entity.addPart("lid", new StringBody(app_loadid));

}

totalSize = entity.getContentLength();

httppost.setEntity(entity);

// Making server call

HttpResponse response = httpclient.execute(httppost);

HttpEntity r_entity = response.getEntity();

int statusCode = response.getStatusLine().getStatusCode();

System.out.println("statusCode +statusCode");

if (statusCode == 200) {

// Server response

System.out.println("statusCode +statusCode");

responseString = EntityUtils.toString(r_entity);

String success = String.valueOf(responseString.contains("1"));

if (success.matches("true")) {

uploadedFileCount++;

} else {

runOnUiThread(new Runnable() {

public void run() {

Toast.makeText(getApplicationContext(), "File not uploaded. Please upload again...", Toast.LENGTH_SHORT).show();

}

});

}

} else {

responseString = "Error occurred! Http Status Code: " + statusCode;

}

} catch (ClientProtocolException e) {

responseString = e.toString();

} catch (IOException e) {

responseString = e.toString();

}

return responseString;

}

@Override

protected void onPostExecute(String result) {

Log.e(TAG, "Response from server: " + result);

pd.dismiss();

if (uploadedFileCount == MAX_COUNT) {

AlertDialog.Builder alert = new AlertDialog.Builder(CIBILCaptureandUPLOAD.this);

alert.setTitle(R.string.app_name);

alert.setMessage("Reach to max upload limit");

alert.setCancelable(false);

alert.setPositiveButton("OK", null);

alert.create().show();

}

// showing the server response in an alert dialog

showAlert(result);

AppUtill.deleteFolderAndAllFile(CIBILCaptureandUPLOAD.this);

super.onPostExecute(result);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值