博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
图片文件上传
阅读量:5237 次
发布时间:2019-06-14

本文共 3685 字,大约阅读时间需要 12 分钟。

//一些定义的变量 private String newName = "image.jpg"; private String uploadFile = "/sdcard/apple.jpg"; //private String actionUrl = "http://localhost:8080/testCutPic/upload.php"; //上传图片地址,上传的图片文件参数名为fileToUpload private String actionUrl="http://192.168.1.64/svn_ys/sousoutu/api/api_imgupload.php";

 HttpClient请求客户端方式:

private void postFile(){ HttpClient httpclient = new DefaultHttpClient(); httpclient.getParams().setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1); HttpPost httppost = new HttpPost("http://192.168.1.64/svn_ys/sousoutu/api/api_imgupload.php"); File file = new File(uploadFile); // File file2=new File(uploadFile); ContentBody cbFile = new FileBody(file, "image/jpeg"); // ContentBody cbFile2 = new FileBody(file2, "image/jpeg"); MultipartEntity mpEntity = new MultipartEntity(); mpEntity.addPart("fileToUpload", cbFile); // mpEntity.addPart("fileToUpload2", cbFile2); // mpEntity.addPart("字符串参数", new StringBody("user")); httppost.setEntity(mpEntity); Log.d("log", "请求信息: " + httppost.getRequestLine()); // System.out.println("executing request " + httppost.getRequestLine()); HttpResponse response = null; try { response = httpclient.execute(httppost); } catch (ClientProtocolException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } HttpEntity resEntity = response.getEntity(); Log.d("log", "响应信息:"+response.getStatusLine().toString()); // System.out.println(response.getStatusLine()); if (resEntity != null) { try { final String response_str=EntityUtils.toString(resEntity); Log.d("log", response_str); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if (resEntity != null) { try { resEntity.consumeContent(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } httpclient.getConnectionManager().shutdown(); }字节流的方式上传:

private void uploadFile() { String end = "\r\n"; String twoHyphens = "--"; String boundary = "*****"; try { URL url = new URL(actionUrl); HttpURLConnection con = (HttpURLConnection) url.openConnection(); con.setDoInput(true); con.setDoOutput(true); con.setUseCaches(false); 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(twoHyphens + boundary + end); ds.writeBytes("Content-Disposition: form-data; " + "name=\"file1\";filename=\"" + newName + "\"" + end); ds.writeBytes(end); FileInputStream fStream = new FileInputStream(uploadFile); int bufferSize = 1024; byte[] buffer = new byte[bufferSize]; int length = -1; while ((length = fStream.read(buffer)) != -1) { ds.write(buffer, 0, length); } ds.writeBytes(end); ds.writeBytes(twoHyphens + boundary + twoHyphens + end); fStream.close(); ds.flush(); InputStream is = con.getInputStream(); int ch; StringBuffer b = new StringBuffer(); while ((ch = is.read()) != -1) { b.append((char) ch); } showDialog("上传成功" + b.toString().trim()); ds.close(); } catch (Exception e) { e.printStackTrace(); showDialog("上传失败" + e); } }

用到的dialog对话框,用来显示测试结果:

private void showDialog(String mess) { new AlertDialog.Builder(TestuploadImageActivity.this) .setTitle("Message").setMessage(mess) .setNegativeButton("确定", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { } }).show(); }

转载于:https://www.cnblogs.com/andriod-html5/archive/2012/02/29/2539715.html

你可能感兴趣的文章
discuz 常用脚本格式化数据
查看>>
洛谷P2777
查看>>
PHPStorm2017设置字体与设置浏览器访问
查看>>
SQL查询总结 - wanglei
查看>>
安装cocoa pods时出现Operation not permitted - /usr/bin/xcodeproj的问题
查看>>
GIT笔记:将项目发布到码云
查看>>
JavaScript:学习笔记(7)——VAR、LET、CONST三种变量声明的区别
查看>>
JavaScript 鸭子模型
查看>>
SQL Server 如何查询表定义的列和索引信息
查看>>
GCD 之线程死锁
查看>>
NoSQL数据库常见分类
查看>>
一题多解 之 Bat
查看>>
Java 内部类
查看>>
{面试题7: 使用两个队列实现一个栈}
查看>>
【练习】使用事务和锁定语句
查看>>
centos7升级firefox的flash插件
查看>>
Apache Common-IO 使用
查看>>
评价意见整合
查看>>
二、create-react-app自定义配置
查看>>
Android PullToRefreshExpandableListView的点击事件
查看>>