public void upload() {
String name = po.getName(); // file name
String str = po.getStr()+"/plugins/j2me"; // url
byte[] raw = snap.getData(); // file data
String cmd = "uploadpic";
String auth = po.getUserId();
String albumId = po.getUserId();
String type = po.getType();
String remarks = po.getDemo();
String[] props = { "cmd","auth","albumId", "public", "remarks" }; //property name
String[] values = { cmd, auth, albumId, type, remarks }; // property value
try {
String BOUNDARY = "---------7d4a6d158c9"; // separate line
String MULTIPART_FORM_DATA = "multipart/form-data";
StringBuffer sb = new StringBuffer();
for (int i = 0; i < props.length; i++) { // send each property
sb = sb.append("--");
sb = sb.append(BOUNDARY);
sb = sb.append("\r\n");
sb = sb.append("Content-Disposition: form-data; name=\""+ props[i] + "\"\r\n\r\n");
sb = sb.append(URLEncoder.encode(values[i],"UTF-8"));
sb = sb.append("\r\n");
}
sb = sb.append("--");
sb = sb.append(BOUNDARY);
sb = sb.append("\r\n");
sb = sb.append("Content-Disposition: form-data;name=\"file\";filename=\""+ name + ".jpg\"\r\n");
sb = sb.append("Content-Type: application/octet-stream\r\n\r\n");
byte[] data = sb.toString().getBytes();
byte[] end_data = ("\r\n--" + BOUNDARY + "--\r\n").getBytes();
HttpConnection hc = (HttpConnection) Connector.open(str,Connector.READ_WRITE); // set HTTP head:
hc.setRequestProperty("Content-Type", MULTIPART_FORM_DATA + "; boundary=" + BOUNDARY);
hc.setRequestProperty("Content-Length", String.valueOf(data.length+ raw.length + end_data.length)); //
// hc.setRequestProperty("Connection", "keep-alive");
hc.setRequestMethod(HttpConnection.POST); // out: OutputStream //
output =hc.openOutputStream();
output.write(data);
output.write(raw, 0, raw.length);
output.write(end_data);
int cah = hc.getResponseCode();
if (cah != HttpConnection.HTTP_OK) {
System.out.println(cah);
return;
}
output.close();
//receive(hc);
hc.close();
} catch (IOException e) {
} catch (SecurityException e) {
} catch (NullPointerException e) {
}
}
分享到:
相关推荐
在J2ME中,对于POST上传,我们首先要设置HttpConnection的Content-Type为"multipart/form-data",这是因为这种编码方式能够携带多个文件和普通表单数据。 multipart/form-data的结构由一系列的part组成,每个part...
### J2ME Post 方式上传文件详解 #### 一、背景介绍 J2ME(Java 2 Micro Edition)是Sun Microsystems公司为嵌入式设备和移动终端提供的Java平台。随着移动互联网的发展,J2ME逐渐被Android等平台所取代,但在特定...
在J2ME中,实现文件上传到服务器的功能可能会面临一些挑战,因为J2ME的API相对有限且不支持大文件直接上传。下面将详细介绍如何克服这些限制,实现J2ME文件上传到服务器的过程。 首先,我们需要了解J2ME的基础知识...
这个J2ME上传图片程序的压缩包可能包含以下文件: - 客户端源码:包含J2ME应用程序的.java文件,展示如何选择图片、编码并发送HTTP请求。 - 服务器端源码:可能是Servlet或Java EE相关的.java文件,展示如何接收、...
需要注意的是,J2ME的网络功能受到设备的限制,可能无法支持大文件上传或长连接。因此,在实际开发中,可能需要考虑分块上传、压缩图片以减小数据量,或者使用服务器端的代理服务来处理上传。 7. **res和src目录**...
7. **异步网络操作**:为避免阻塞主线程,J2ME鼓励使用回调或事件驱动的方式处理网络请求,如使用ProgressListener监听下载进度。 8. **网络安全**:J2ME支持SSL/TLS加密,以确保数据在网络中的安全传输。 在实际...
在这个场景中,我们讨论的是一个基于J2ME的应用,它允许用户通过设备的内置摄像头拍摄照片并上传到服务器。这个应用的特点是其友好的用户界面和使用HTTP协议进行数据传输。 首先,J2ME拍照功能涉及到对设备硬件的...
JAR(Java Archive)文件是J2ME应用的标准打包格式,包含所有类文件和资源。jad(Java Application Descriptor)文件则包含了关于应用元数据的信息,如版本、屏幕尺寸需求等。应用通常通过无线下载(OTA,Over The ...
在这个示例中,`HttpConnectionPost`可能涉及到了`HttpConnection`类,用于建立HTTP连接并发送POST请求到服务器,实现数据的上传和下载。 2. **数据库交互**:`bank.mdb`文件可能是一个Micro Edition Persistent ...
开发者需要将图片文件转换为适合传输的格式(如Base64编码),然后通过POST请求将数据发送到服务器。在这个例子中,可能使用了J4ME库来简化这个过程,因为J4ME提供了更方便的UI组件和网络操作工具。 J4ME是一个流行...
POST请求常用于提交表单数据或上传文件,数据包含在请求体中,而不是像GET请求那样包含在URL中。 在实际的无线网络编程中,J2ME的网络功能虽然简化了,但仍然需要处理网络连接的异步性、错误处理、数据编码解码等...
开发者可以创建HTTP、FTP连接,发送GET或POST请求,处理响应,上传或下载数据。 5. **模拟与调试**:WTK的模拟器能模拟多种不同型号的手机,让开发者在真实设备之前测试应用的行为。调试器则可以帮助定位和修复代码...
- **请求定义**:客户端向服务器发送数据,通常用于提交表单或上传文件。 - **响应定义**:服务器接收并处理数据后,返回处理结果或状态码。 #### 五、与下载协议相关的头字段定义 - **Host**:指定请求的服务器...
3. **文件与目录操作**:如文件读写、文件上传、目录遍历、文件属性获取等。 4. **表单处理**:POST和GET方法的使用,表单验证,提交后的数据处理。 5. **数据库交互**:使用MySQLi或PDO连接数据库,执行SQL查询,...
4. **Multipart Form Data**:对于需要上传文件的应用场景,Servlet 2.3 支持处理包含多个部分的表单数据,使得文件上传变得简单直接。 5. **Internationalization and Localization**:为了支持国际化和本地化...
- 展示如何使用JavaBean处理文件上传。 - **自定义标记库设置Applet程序应用**: - 介绍如何创建和使用自定义的JSP标记库。 综上所述,Servlet与JSP技术是构建现代Web应用的核心组成部分。Servlet负责处理来自...
8.11 将手机文件上传至网站服务器——模拟HTTPFORM的POSTACTION 8.12 移动博客发布器——以XML-RPC达成远程过程调用 8.13 移动RSS阅读器——利用SAXParser解析XML 8.14 远程下载安装Android程序——APKInstaller的...