
选择图像,doc或pdf后,我想将它们通过okhttp3.如何执行此 *** 作?
@OverrIDepublic voID onActivityResult(int requestCode, int resultCode, Intent data) { // Todo auto-generated method stub super.onActivityResult(requestCode, resultCode, data); if(resultCode==RESulT_OK && requestCode==0){ Log.d("uri data",""+data.getData()); selectedfileUri = data.getData(); fileToBeUploaded = new file(""+selectedfileUri); filename = fileToBeUploaded.getname(); Log.d("filename",""+filename);并在okhttp 3中
Requestbody formBody = new Multipartbody.Builder() .setType(Multipartbody.FORM) .addFormDataPart("data[User][user_picture]", fileToBeUploaded.getname(),Requestbody.create(MediaType.parse("*/*"), fileToBeUploaded))显示的错误是
java.io.fileNotFoundException: content:/com.androID.provIDers.media.documents/document/image%3A40227: open Failed: ENOENT (No such file or directory)谢谢.
解决方法:
所以我自己回答这个问题.
因此,我首先将输出流打开到一个临时文件.
imageTempuploadfile=new file(Environment.getExternalStorageDirectory()+"/inpaint/");if(!imageTempuploadfile.exists()) imageTempuploadfile.mkdirs(); imageTempuploadfile2 = new file(Environment.getExternalStorageDirectory() + "/inpaint/"+"file"+".docx");OutputStream outputTempfileStream = new fileOutputStream(imageTempuploadfile2);扩展名取决于MIME类型.您可以通过以下方式找到MIME类型
@OverrIDepublic voID onActivityResult(int requestCode, int resultCode, Intent data) { // Todo auto-generated method stub super.onActivityResult(requestCode, resultCode, data); if(resultCode==RESulT_OK && requestCode==0){ Log.d("uri data",""+data.getData()); String mimetype = context.getContentResolver().getType(data.getData()); selectedfileUri = data.getData();现在读取文件并将其内容写入临时文件
selectedfileinputStream = getContentResolver().openinputStream(selectedfileUri);现在写入文件
try { try { byte[] buffer = new byte[4 * 1024]; // or other buffer size int read; while ((read = selectedfileinputStream.read(buffer)) != -1) { outputTempfileStream.write(buffer, 0, read); } outputTempfileStream.flush(); } finally { outputTempfileStream.close(); }} catch (Exception e) { e.printstacktrace(); // handle exception, define IOException and others}最后
MultipartUtility multipart = new MultipartUtility(urlLeaveFormApply, charset);multipart.addfilePart("data[User][user_picture]", imageTempuploadfile2);成功之后的最后
imageTempuploadfile2.delete(); 总结 以上是内存溢出为你收集整理的java-通过okhttp3上传文件全部内容,希望文章能够帮你解决java-通过okhttp3上传文件所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)