Android 文件的上传
来源:互联网 发布:江阴市网络教研平台 编辑:程序博客网 时间:2024/05/16 11:22
使用 AsyncHttpClient来实现文件的上传功能
当然,这里需要首先导入asyncHttpClient依赖的jar包
上传文件的基本操作步骤:
明确读取文件的路径与上传文件的地址
依据文件的路径将上传文件封装为File
依据上传文件的目标地址设置网络请求的方式
进行文件的上传的操作
获取文件上传的结果
//上传文件的路径private String uploadLocaleUrl=""//上传文件的目的地址private String uploadServletUrl=""//点击按钮 进行文件上传 public void click(View v) {//依据上传文件的路径 构建file 对象File file = new File(uploadLocaleUrl);if (file.exists()&&file.length()>0) {//获取asynchttpclient的实例 AsyncHttpClient client = new AsyncHttpClient();//进行文件的上传 发送一个post请求 RequestParams params = new RequestParams(); try {params.put("profile_picture", file);// Upload a File} catch (FileNotFoundException e) {e.printStackTrace();} client.post(uploadUrl, params, new AsyncHttpResponseHandler() {//上传成功后 调用这个方法@Overridepublic void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {Toast.makeText(getApplicationContext(), "上传成功", 0).show();}@Overridepublic void onProgress(int bytesWritten, int totalSize) {//设置进度条的总大小 pb_bar.setMax(totalSize);//设置进度条的当前进度pb_bar.setProgress(bytesWritten);super.onProgress(bytesWritten, totalSize);}//上传失败@Overridepublic void onFailure(int statusCode, Header[] headers,byte[] responseBody, Throwable error) {}});}else {System.out.println("请检测文件对象 ...");}
注意:需要添加连网的权限
使用 HttpURLConnection实现文件的上传
使用这种方法比较麻烦,封装的参数比较多
//上传文件的地址路径 private String uploadServiletUrl = ""; //上传文件的路径 private String uploadLocaleUrl = ""; private void uploadFile() { String end = "/r/n"; String Hyphens = "--"; String boundary = "*****"; File file = new File(uploadLocaleUrl); try { URL url = new URL(uploadServiletUrl); //创建一个连接 HttpURLConnection con = (HttpURLConnection) url.openConnection(); /* 允许Input、Output,不使用Cache */ con.setDoInput(true);//允许输入流 con.setDoOutput(true);//允许输出流 con.setUseCaches(false);//设置不使用缓存 //设定请求的方式为post con.setRequestMethod("POST"); //设定请求的参数 con.setRequestProperty("Connection", "Keep-Alive"); con.setRequestProperty("Charset", "UTF-8"); con.setRequestProperty("Content-Type","multipart/form-data;boundary=" + boundary); //设定输出流 DataOutputStream ds = new DataOutputStream(con.getOutputStream()); ds.writeBytes(Hyphens + boundary + end); ds.writeBytes("Content-Disposition: form-data; "+"name=/"+file+"/"+"newName/"+end); ds.writeBytes(end); /* 取得文件的FileInputStream */ FileInputStream fStream = new FileInputStream(uploadLocaleUrl); /* 设定每次写入1024bytes */ int bufferSize = 1024; byte[] buffer = new byte[bufferSize]; int length = -1; /* 从文件读取数据到缓冲区 */ while ((length = fStream.read(buffer)) != -1) { /* 将数据写入DataOutputStream中 */ ds.write(buffer, 0, length); } ds.writeBytes(end); ds.writeBytes(Hyphens + boundary + Hyphens + end); fStream.close(); ds.flush(); //获取服务器返回的数据 InputStream is = con.getInputStream(); int ch; StringBuffer stringBuffer= new StringBuffer(); while ((ch = is.read()) != -1) { stringBuffer.append((char) ch); } System.out.println("上传成功");; ds.close(); } catch (Exception e) { System.out.println("上传失败" + e.getMessage()); } }
0 0
- Android 文件的上传
- Android文件的上传
- Android 文件的上传
- Android 实现文件的上传
- android文件的上传操作
- android下的文件上传
- Android程序apk文件上传的问题
- android带进度的文件上传
- Android 文件的上传和下载
- android带进度的文件上传
- android实现带进度条的文件上传
- web端、android端的文件上传
- android带进度的文件上传
- Android上传文件到服务器的代码
- Android 基于Http协议的文件上传
- android 多文件上传注意的问题
- Android的webView支持文件上传
- springmvc服务端+android客户端的文件上传
- android活动的启动模式
- 关于SqLite的研究
- 好的深度学习——学习地址
- spring mvc 结合jackson返回的日期格式问题
- POJ 1389 (扫描线)
- Android 文件的上传
- 设置界面的搭建和封装
- libvirt的安装流程
- 九度oj-1088-剩下的树
- JDK-Eclipse-Android_SDK-ADT详细图文安装教程(2)
- 设置界面-更新
- Bitmap的相关方法汇总
- int 和Integer创建对象在内存中的初始值不同
- java设计模式(一)—策略模式