- 浏览: 153830 次
- 性别:
- 来自: 茂名
文章分类
最新评论
-
stoneyulu:
很好,正需要要!用来在thread和activity之间传数 ...
在Activity中通过Bundle传递自定义数据类型 -
鱼在陆地上跑:
只能读取TXT格式的文件,而不能读取图片
读取Rescource和asset文件夹中的文件 -
myg_315:
我也在调查这个问题,谢谢!
Android程序的退出终于完美解决,兼容所有SDK -
jk138:
谢谢各位的评论,楼下的建议很好,值得大家注意了.
Android程序的退出终于完美解决,兼容所有SDK -
cyilinycc:
非常感谢你提供的这个方法,但我经过测试之后,发现这个方法存在弊 ...
Android程序的退出终于完美解决,兼容所有SDK
首先写好一个专门用于封装提交的信息的处理类
FormFile.java
package com.cnjmwl.util; public class FormFile { /* 上传文件的数据 */ private byte[] data; /* 文件名称 */ private String filname; /* 表单字段名称*/ private String formname; /* 内容类型 */ private String contentType = "text/plain"; //需要查阅相关的资料 public FormFile(String filname, byte[] data, String formname, String contentType) { this.data = data; this.filname = filname; this.formname = formname; if(contentType!=null) this.contentType = contentType; } public byte[] getData() { return data; } public void setData(byte[] data) { this.data = data; } public String getFilname() { return filname; } public void setFilname(String filname) { this.filname = filname; } public String getFormname() { return formname; } public void setFormname(String formname) { this.formname = formname; } public String getContentType() { return contentType; } public void setContentType(String contentType) { this.contentType = contentType; } }
然后写android客户端提交到的方法
String actionURl="http://192.168.1.79:6888/jmcustomer/placeOrderServlet";
//String actionURl=HttpUtil.BASE_URL+"new"; Map<String, String> params=new HashMap<String, String>(); //传个用户名 params.put("username", this.getIntent().getStringExtra("username")); params.put("orderdesc", StringUtil.utf8ToUnicode(orderdesc.getText().toString())); String contentType = "image/JPEG"; File file =new File("/data/data/test.jpg"); byte[] buffer = new byte[1024]; int len = -1; ByteArrayOutputStream outStream = new ByteArrayOutputStream(); BufferedInputStream bufferedInputStream; try { bufferedInputStream = new BufferedInputStream(new FileInputStream(file)); while ((len = bufferedInputStream.read(buffer)) != -1) { outStream.write(buffer, 0, len); } data = outStream.toByteArray(); outStream.close(); bufferedInputStream.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } //获取用户编辑照片的文件名 String photoName=fileName.getText().toString(); if(photoName==null||photoName.trim().equals("")){ photoName="default"; } // FormFile[] files=new FormFile[]{new FormFile("test.jpg",data,"file1",contentType)}; FormFile[] files=new FormFile[]{new FormFile(photoName+".jpg",mContent,"file1",contentType)}; String result= post(actionURl, params, files); if(result.equals("1")){ showAlert("提交成功!"); }else{ showAlert("提交失败!"); }
/**
* 直接通过HTTP协议提交数据到服务器,实现表单提交功能 * @param actionUrl 上传路径 * @param params 请求参数 key为参数名,value为参数值 * @param file 上传文件 */ public static String post(String actionUrl, Map<String, String> params, FormFile[] files) { try { String BOUNDARY = "---------7d4a6d158c9"; //数据分隔线 String MULTIPART_FORM_DATA = "multipart/form-data"; URL url = new URL(actionUrl); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setDoInput(true);//允许输入 conn.setDoOutput(true);//允许输出 conn.setUseCaches(false);//不使用Cache conn.setRequestMethod("POST"); conn.setRequestProperty("Connection", "Keep-Alive"); conn.setRequestProperty("Charset", "UTF-8"); conn.setRequestProperty("Content-Type", MULTIPART_FORM_DATA + "; boundary=" + BOUNDARY); StringBuilder sb = new StringBuilder(); //上传的表单参数部分,格式请参考文章 for (Map.Entry<String, String> entry : params.entrySet()) {//构建表单字段内容 sb.append("--"); sb.append(BOUNDARY); sb.append("\r\n"); sb.append("Content-Disposition: form-data; name=\""+ entry.getKey() + "\"\r\n\r\n"); sb.append(entry.getValue()); sb.append("\r\n"); } DataOutputStream outStream = new DataOutputStream(conn.getOutputStream()); outStream.write(sb.toString().getBytes());//发送表单字段数据 //上传的文件部分,格式请参考文章 for(FormFile file : files){ StringBuilder split = new StringBuilder(); split.append("--"); split.append(BOUNDARY); split.append("\r\n"); split.append("Content-Disposition: form-data;name=\""+ file.getFormname()+"\";filename=\""+ file.getFilname() + "\"\r\n"); split.append("Content-Type: "+ file.getContentType()+"\r\n\r\n"); outStream.write(split.toString().getBytes()); outStream.write(file.getData(), 0, file.getData().length); outStream.write("\r\n".getBytes()); } byte[] end_data = ("--" + BOUNDARY + "--\r\n").getBytes();//数据结束标志 outStream.write(end_data); outStream.flush(); int cah = conn.getResponseCode(); if (cah != 200) throw new RuntimeException("请求url失败"); InputStream is = conn.getInputStream(); int ch; StringBuilder b = new StringBuilder(); while( (ch = is.read()) != -1 ){ b.append((char)ch); } outStream.close(); conn.disconnect(); return b.toString(); } catch (Exception e) { throw new RuntimeException(e); } }
发表评论
-
Failed to receive access token
2013-04-24 12:52 1512在 com.weibo.net.Token.java文件中 ... -
Android实例五:Notification通知和Broadcast结合
2011-06-15 11:42 8304第一步.MainActivity.java pack ... -
Android实例四:BroadCast_Receiver
2011-06-15 10:36 6789第一步. MainActivity.java ... -
Android实例三:学习Service
2011-06-15 10:15 1415第一步.MainActivity.java pa ... -
Android实例二:手机数据库SQListe
2011-06-14 11:16 2192[code="java"] ... -
Android实例一:文件搜索
2011-06-13 20:12 3802本例子参考SDK开发范例大全 说明:以ListA ... -
关于android ListView的美化
2011-05-31 08:36 988用心的朋友应该会发现,listview中在设置了背景之后。会有 ... -
Android程序的退出终于完美解决,兼容所有SDK
2011-05-30 16:23 3713上网学了好多方法,关于Android的Activity如何退出 ... -
android兼容2.2及以前版本的退出方法
2011-05-30 14:16 1240首先,在首个activity中写: Intent inten ... -
缩放图片的方法
2011-05-26 15:35 1105代码一: public Bitmap ResizeBi ... -
Android对图片的压缩读取和保存
2011-05-26 12:46 1757在开发图片浏览器等软件是,很多时候要显示图片的缩略图,而一般情 ... -
android显示单位
2011-05-19 16:10 1008px (pixels)像素 一般HVGA代表320 ... -
申请Google Map密钥
2011-05-17 15:25 17531.启动eclipse,依次单 ... -
SharedPreferences
2011-05-17 14:16 1294package wyf.wpf;//声明包语句 imp ... -
Content Provider
2011-05-17 11:54 1137package wyf.wpf; //声明包 ... -
轻量级数据库SQLite
2011-05-17 11:29 1235MySQLiteHelper.java im ... -
读取Rescource和asset文件夹中的文件
2011-05-17 11:01 5263package wyf.wpf; //声明包 ... -
数据存储之IO
2011-05-17 10:54 985package wyf.wpf; import jav ... -
android 检测当前网络并调用系统设置
2011-05-12 10:07 1717/** * 检测网络是否可用 */ pu ... -
Android 菜单(Menu)控件的使用
2011-05-11 14:05 746有两种方法,可以创建。 1.通过xml来创建 ...
相关推荐
手机图片上传
这是实现手机端图片上传的基础。FileReader接口用于读取文件内容,Blob对象则用于存储文件数据。 2. **** 在HTML中,`<input type="file">`元素用于创建一个文件选择器,用户可以通过这个选择器选取本地文件。添加...
但如果手机拍摄或存储的图片采用了不常见的格式,如HEIC(iPhone默认的图片格式),可能会导致照片查看器无法识别。HEIC是一种高效的图片编码格式,需要特定的解码器来打开。 2. **系统设置和颜色管理**: - 控制...
在上传照片的界面,找到之前创建的文件夹,比如“怎样把手机照片传到空间”,然后勾选你想上传的照片。你可以选择性上传一部分照片,也可以全选全部照片。 点击“开始上传”,等待上传过程完成。一旦所有的照片都...
在.NET技术框架下,开发移动端应用时,常常需要实现用户在手机端通过H5页面上传图片的功能。这个".net手机端移动端多图片h5上传案例...通过分析和学习这个示例,开发者可以快速掌握.NET环境下H5多图片上传的实现方式。
`Jquery`作为一个广泛使用的JavaScript库,为Web开发者提供了丰富的功能,包括在移动设备上处理图片上传。本教程将详细介绍如何利用Jquery实现在iOS和Android设备上进行图片上传,并且支持图片的压缩功能,以降低...
HTML5手机图片上传头像裁剪代码是一种利用现代Web技术实现的交互式图像处理功能,主要应用于移动设备上的用户头像选择与定制。这个压缩包包含的资源是用于创建这样一个功能的JavaScript特效,特别是针对图片相册应用...
标题 "PHP(TP5.0)+jq+ajax手机图片上传,支持裁切" 描述的是一个使用PHP(ThinkPHP框架的5.0版本)结合jQuery(jq)和Ajax技术实现的手机图片上传功能,该功能还包含了图片裁切的功能。这个系统设计的主要目标是为...
这个程序允许用户通过他们的手机摄像头拍照或者选择相册中的图片,然后将这些图片上传到一个基于PHP的网站。在实现这个功能时,通常会用到以下关键知识点: 1. **表单上传**: - HTML表单:在`index.html`文件中,...
【ASP手机网站拍照上传代码】是针对移动设备用户设计的一款基于ASP技术的图片上传功能实现。这个源码允许用户直接通过手机摄像头拍照后上传图片,同时也支持从手机相册中选择图片进行上传,并且可以一次性上传多张...
在移动应用开发中,"手机端多图片上传"是一个常见的功能需求,特别是在社交媒体、电子商务或者个人分享类的应用中。这个功能允许用户一次性选择并上传多张图片,极大地提高了用户体验。以下将详细介绍实现这一功能的...
通过集成此插件,开发者可以快速地在网站上添加多图片上传功能,尤其对于手机端的网页应用,它能够很好地适应各种屏幕尺寸和触摸操作。 2. **基于PHP和jQuery** PHP是服务器端的脚本语言,用于处理上传请求、存储...
本文将深入探讨如何使用 `input type="file"` 激活手机的照相机功能以及选择图片上传。 首先,`<input type="file">` 是HTML中的一个表单元素,它的主要作用是让用户选择本地文件。在默认情况下,点击这个元素会...
在`canvasDemo-master`这个项目中,可能包含了实现上述功能的HTML、CSS和JavaScript代码,通过分析和学习这个示例,你可以深入理解如何结合HTML5、jQuery和Canvas来处理图片上传和旋转问题,这对于构建交互性强的...
"html5手机页面选择相册图片上传表单提交"是移动Web开发中的一个重要功能,它允许用户直接从手机相册中选取图片并提交到服务器,极大地简化了用户操作流程。 一、HTML5的新特性:File API HTML5引入了File API,这...
在HTML5中,实现手机相机拍照并上传照片给后台的功能主要涉及到两个关键API:`<input type="file">`的`capture`属性和File API。下面将详细介绍这两个知识点及其相关应用。 1. `<input type="file">`与`capture`...
基于Vue实现跨平台上传图片,pc端访问时上传图片资源,移动端访问时调用相册,可拍照和从相册里选择并在页面可进行预览。文档记录了java后端和vue前端两部分核心代码包括注释说明
"JQUERY图片批量上传,手机版可用" 这个主题聚焦于使用jQuery库来实现一个高效且适应移动端的多图片上传功能。jQuery是一个广泛使用的JavaScript库,它简化了DOM操作、事件处理、动画以及Ajax交互等任务,使得开发者...
调用Android系统拍照功能后,三星手机拍摄后的照片被旋转了90度,横着拍给你变成竖的,竖的拍给你变成横的。其它品牌的手机都是正常的,就三星出现这个怪事。 在Android适配上,我原来一直以为国内的小米手机够奇葩...
所以我一直都是将手机照片拷贝到电脑里,用ACDSee之类的软件批量压缩后再上传到网盘。 视频也是利用压缩工具,将100MB的视频压缩到10MB左右后再上传(画质有一定损失,但也很清晰)。 图片压缩我用的ImageMagick...