import java.io.*;
import java.net.*;
public class upload {
private static byte[] readFile(String file)throws Exception
{
FileInputStream fis = new FileInputStream(file);
byte[] b = new byte[256];
int l;
ByteArrayOutputStream bos = new ByteArrayOutputStream();
while((l=fis.read(b)) != -1){
bos.write(b,0,l);
}
fis.close();
return bos.toByteArray();
}
public static void main(String[] args) throws Exception{
URL url = new URL("http://ustor.cn/newupload/");
HttpURLConnection connection=(HttpURLConnection)url.openConnection();
//设置请求方式
connection.setRequestMethod("POST");
connection.setDoOutput(true);
//读取文件内容到byte[]
//File file=new File("d:\\s.txt");
//FileOutputStream fos=new FileOutputStream(file);
/*
byte buff;
StringBuffer file_buff =new StringBuffer();
while((buff=fis.read())!=-1)
{
file_buff.append(new String(buff));
}
*/
//byte[] f="abcdefghijklmnopqrstuvwxyz".getBytes();
//byte[] f=readFile("d:\\s.txt");
byte[] f=new FileUtil().getFileByte("E:\\My Documents\\Desktop\\对象存储\\对象存储_国内专利分析.jpg");
System.out.println("字节数组的大小:"+f.length);
/*
for(int i=0;i<f.length;i++)
{
System.out.print(f[i]);
}
*/
//fos.write(f);
// 分隔符
String BOUNDARY = "---------------------------265001916915724";
StringBuffer sb = new StringBuffer();
//发送文件:
sb = sb.append("--");
sb = sb.append(BOUNDARY);
sb = sb.append("\r\n");
sb = sb.append("Content-Disposition: form-data; name=\"file\"; filename=\"对象存储_国内专利分析.jpg\"\r\n");
sb = sb.append("Content-Type: image/jpeg\r\n\r\n");
byte[] data = sb.toString().getBytes();
byte[] end_data = ("\r\n--" + BOUNDARY + "--\r\n").getBytes();
// 设置HTTP头:
connection.setRequestProperty("Content-Type", "multipart/form-data;boundary="+ BOUNDARY);
connection.setRequestProperty("Content-Length", String.valueOf(data.length + f.length + end_data.length));
// 输出:
OutputStream out=connection.getOutputStream();
out.write(data);
out.write(f);
out.write(end_data);
out.flush();
// 读取服务器响应:
BufferedReader in=new BufferedReader(new InputStreamReader(connection.getInputStream()));
String line=null;
while((line=in.readLine())!=null){
System.out.println(line);
}
in.close();
out.close();
}
}
class FileUtil {
public byte[] getFileByte(String fileName) throws FileNotFoundException {
FileInputStream fileInputStream = new FileInputStream(fileName);
return getFileByte(fileInputStream);
}
public byte[] getFileByte(URL url) throws IOException {
if (url != null) {
return getFileByte(url.openStream());
} else {
return null;
}
}
public byte[] getFileByte(InputStream in) {
ByteArrayOutputStream out = new ByteArrayOutputStream(4096);
try {
copy(in, out);
} catch (IOException e) {
e.printStackTrace();
}
return out.toByteArray();
}
private void copy(InputStream in, OutputStream out) throws IOException {
try {
byte[] buffer = new byte[4096];
int nrOfBytes = -1;
while ((nrOfBytes = in.read(buffer)) != -1) {
out.write(buffer, 0, nrOfBytes);
}
out.flush();
} catch (IOException e) {
}finally {
try {
if (in != null) {
in.close();
}
} catch (IOException ex) {
}
try {
if (out != null) {
out.close();
}
} catch (IOException ex) {
}
}
}
}
可结合FireFox的插件:HttpFox和 Live HTTP header 来设置请求的头部
分享到:
相关推荐
Java利用HttpURLConnection发送post请求上传文件
//检查当前项目是普通表单项目还是上传文件。 if (item.isFormField()) {//如果是普通表单项目,显示表单内容。 String fieldName = item.getFieldName(); if (fieldName.equals("name")) //对应demo1.html中...
客户端上传功能都做好了服务端可以根据post的字段自己用php或者py写个接收文件就可以了。注册部分只是个样子,没有实现功能。可以使用默认手机号17000000000密码javaapk登录进行测试。如果想了解更多安卓上传下载...
利用 Java 的 com.sun.net 包下的 http 类,实现的简易 http 服务器。全部代码已上传至 GitHub,链接在文末。 主要功能为: 1、只处理 GET 方式和 POST 方式的请求,其他的返回 501 Not Implemented 2、GET:1)...
1.国际化工具类 ...14.HTTP请求工具类,支持get,post请求,支持上传文件 15.操作系统工具类,可以获取和判断操作系统类型 16.反射工具类 17.Java序列化工具类,支持序列化反序列化,可以用于OSGI环境
首先进入上传页面,form表单采用post请求,并含有二进制文件,entype设置二进制上传文件类型,通过提交common.jsp实现SmartUpload上传然后跳转到对应的页面利用EL表达式显示上传的图片。
参数值:接收用户上传的服务器端程序URL,默认留空为禁用超链接上传功能,具体使用方法请参考demo8演示文件 注:可使用内置变量:{editorRoot},代表当前编辑器的根路径,例:{editorRoot}upload.php upLinkExt:...
再有如通过HTTP来上传文件呢?不需要头疼,这些问题有了“它”就很容易解决了! <br>我们不可能列举所有可能的顽固,我们会针对几种最常见的问题进行处理。当然了,正如前面说到的,如果我们自己使用java.net....
{7.1}Java的文件系统管理}{103}{section.7.1} {7.2}回调模式与FileFilter}{104}{section.7.2} {7.3}\ttfamily RandomAccessFile}{106}{section.7.3} {7.4}基本类型数据序列化}{108}{section.7.4} {7.5}String的...
提供支持,并提取从Java和VB脚本,Java类,层叠样式表(.CSS),Macromedia Flash的(.SFW),XML/ XSL/ DTD,目录(.TOC),MPEG3播放列表(.M3U链接),Authorware中(.AAM)时,Acrobat(。PDF),RealMedia格式...
2. 利用Spring IoC方式 编写 263 3. 设置Bean作用域 265 4. 为Bean配置集合(List,Set,Map) 266 5. 调用构造方法创建Bean 271 6. 指定Bean引用与自动装配 276 (二) AOP 278 1. AOP简介 278 (三) Spring 3.X 新特性...
8.11 将手机文件上传至网站服务器——模拟HTTPFORM的POSTACTION 8.12 移动博客发布器——以XML-RPC达成远程过程调用 8.13 移动RSS阅读器——利用SAXParser解析XML 8.14 远程下载安装Android程序——APKInstaller...
8.11 将手机文件上传至网站服务器——模拟HTTPFORM的POSTACTION 8.12 移动博客发布器——以XML-RPC达成远程过程调用 8.13 移动RSS阅读器——利用SAXParser解析XML 8.14 远程下载安装Android程序——APKInstaller的...
8.11 将手机文件上传至网站服务器——模拟HTTPFORM的POSTACTION 8.12 移动博客发布器——以XML-RPC达成远程过程调用 8.13 移动RSS阅读器——利用SAXParser解析XML 8.14 远程下载安装Android程序——APKInstaller的...
8.11 将手机文件上传至网站服务器——模拟HTTPFORM的POSTACTION 8.12 移动博客发布器——以XML-RPC达成远程过程调用 8.13 移动RSS阅读器——利用SAXParser解析XML 8.14 远程下载安装Android程序——APKInstaller的...
8.11 将手机文件上传至网站服务器——模拟HTTPFORM的POSTACTION 8.12 移动博客发布器——以XML-RPC达成远程过程调用 8.13 移动RSS阅读器——利用SAXParser解析XML 8.14 远程下载安装Android程序——APKInstaller的...
8.11 将手机文件上传至网站服务器——模拟HTTPFORM的POSTACTION 8.12 移动博客发布器——以XML-RPC达成远程过程调用 8.13 移动RSS阅读器——利用SAXParser解析XML 8.14 远程下载安装Android程序——APKInstaller的...
8.11 将手机文件上传至网站服务器——模拟HTTPFORM的POSTACTION 8.12 移动博客发布器——以XML-RPC达成远程过程调用 8.13 移动RSS阅读器——利用SAXParser解析XML 8.14 远程下载安装Android程序——APKInstaller的...