`
liufei.fir
  • 浏览: 687226 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

HTTP上传工具

 
阅读更多
package com.dayo.tool;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;

import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.methods.InputStreamRequestEntity;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.methods.RequestEntity;


public class UploadRnd_office{
	
	private final static Integer THREAD_SLEEP_TIME = 1000; //等待rnd_office回复信息的时间
	public static void uploadDir(String url,String path,String savePathMark){
		
		File sourceFile = new File(path);		
		File[] fileList = sourceFile.listFiles();
		String filename = "";
		try{
			if(null==fileList || fileList.length==0){
				System.out.println("没有文件...");
				return;
			}
			for(File ff : fileList){
				
				if(ff.isFile()){
					filename = getSvnDirByPath(ff.getPath(),savePathMark);
					uploadFile(url,ff.getPath(),filename);
				}else if(ff.isDirectory()){
					
					path = ff.getPath();
					uploadDir(url,path,savePathMark);
				}
			}
		}catch(Exception e){
			e.printStackTrace();
			throw new RuntimeException(e);
		}
	}
	public static String getSvnDirByPath(String filePath,String savePathMark){
		
		String saveDir = "";
		try{
			System.out.println("=============================");
			filePath = filePath.replace("\\", "#");
			savePathMark = savePathMark.replace("\\", "#");
			String[] dirs = filePath.split(savePathMark);
			saveDir = savePathMark+dirs[1];
			saveDir = saveDir.replace("#", "/");
			System.out.println(saveDir);
		}catch(Exception e){
			e.printStackTrace();
			throw new RuntimeException(e);
		}
		return saveDir;
	}
	public static void uploadFile(String url,String path,String filename){
		
		try{
			
			StringBuffer response = new StringBuffer();
			HttpClient client = new HttpClient();
			PostMethod method = new PostMethod(url); 

			FileInputStream fi = new FileInputStream(new File(path));
			InputStreamRequestEntity fr = new InputStreamRequestEntity(fi);
			method.setRequestEntity((RequestEntity)fr);
			method.setRequestHeader("filename", filename);
			try{
				client.executeMethod(method);//执行上传操作
				if(method.getStatusCode() == HttpStatus.SC_OK){
					
	                  //读取为 InputStream,在网页内容数据量大时候推荐使用  
	                   BufferedReader reader = new BufferedReader(  
	                           new InputStreamReader(method.getResponseBodyAsStream(),  
	                                   "GBK"));  
	                   String line;  
	                   while ((line = reader.readLine())!= null)
	                   {  
	                	   response.append(line);  
	                   }  
	                   reader.close();  
				}
			}catch(Exception e){
		        System.out.println("执行HTTP Post请求" + url + "时,发生异常!");  
	            e.printStackTrace();  
			}finally{
				method.releaseConnection();
			}
			System.out.println("--------------------"+response.toString());  

			
		}catch(Exception e){
			throw new RuntimeException("文件上传失败!!");
		}
	}
	public static String uploadMessage(String urlString,String message){
		
		OutputStream os =  null;
		PrintWriter out = null;
		try{		
			URL url = new URL(urlString);
			URLConnection ucon = url.openConnection();
			HttpURLConnection httpurl = (HttpURLConnection)ucon;
			httpurl.setRequestMethod("GET");
			httpurl.setDoInput(true);
			httpurl.setDoOutput(true);
			httpurl.setRequestProperty("Content-Encoding", "gbk");
			httpurl.setRequestProperty("name", "mozishun");
			httpurl.connect();
			
			StringBuffer sb = new StringBuffer();
			
			String lengthStr = new Integer(message.length()).toString();
			sb.append("sgpcba").append("\n");
			sb.append(lengthStr).append("\n");
			sb.append(message);
			
			message = sb.toString();
			
			os = httpurl.getOutputStream();
			out = new PrintWriter(os);
			out.print(message);
			out.flush();
			
			System.out.println("连接结果:"+httpurl.getResponseMessage());	
			
			if(httpurl.getResponseMessage().equals("OK")){
				Thread.sleep(UploadRnd_office.THREAD_SLEEP_TIME);
				return getReply(httpurl);
			}else{
				return "连接"+urlString+"失败!!";
			}

		}catch(Exception e){
			e.printStackTrace();
			throw new RuntimeException(e);
		}finally{
			try{
				if(os!=null) os.close();
				if(out!=null) out.close();
			}catch(Exception e){
				e.printStackTrace();
				throw new RuntimeException(e);
			}
		}
	}
	public static String uploadObject(String urlString,Object obj){
		OutputStream os =  null;
		ObjectOutputStream out = null;
		try{			
			URL url = new URL(urlString);
			URLConnection ucon = url.openConnection();
			HttpURLConnection httpurl = (HttpURLConnection)ucon;
			httpurl.setRequestMethod("GET");
			httpurl.setDoInput(true);
			httpurl.setDoOutput(true);
			httpurl.setRequestProperty("Content-Encoding", "gbk");
			httpurl.setRequestProperty("name", "mozishun");
			httpurl.connect();
			
			os = httpurl.getOutputStream();
			out = new ObjectOutputStream(os);
			out.writeObject(obj);
			out.flush();
			System.out.println("连接结果:"+httpurl.getResponseMessage());
			
			if(httpurl.getResponseMessage().equalsIgnoreCase("OK")){
				Thread.sleep(UploadRnd_office.THREAD_SLEEP_TIME);
				return getReply(httpurl);
			}else{
				return "连接"+urlString+"失败!!";
			}
			
		}catch(Exception e){
			e.printStackTrace();
			throw new RuntimeException(e);
		}finally{
			try{
				if(os!=null)os.close();
				if(out!=null)out.close();
			}catch(Exception e){
				e.printStackTrace();
			}
		}
	}
	public static String getReply(HttpURLConnection httpurl)throws Exception{
		
		InputStream is = httpurl.getInputStream();
		BufferedReader reader = new BufferedReader(new InputStreamReader(is));
		String request = reader.readLine();
		if(request.equalsIgnoreCase("ok")){
			System.out.println("上传成功!!");
		}else{
			System.out.println("上传失败,失败原因:"+request);
		}
		return request;
	}
	public static void main(String[] args)throws Exception{
		//UploadRnd_office.uploadFile("http://172.16.0.11:8002/receive","D:\\Temp\\mozishun\\test.txt","mo.txt");
		//UploadRnd_office.uploadDir("http://172.16.0.11:8002/receive","D:\\Temp\\mozishun\\Dayo_Factory\\S300\\SW\\S300_H08_S01\\S300_H08_S01_R2041","\\S300\\");
		UploadRnd_office.uploadDir("http://172.16.0.11:8002/receive","D:\\Temp\\mozishun\\Dayo_Factory\\S300\\HW\\S300_H01_P5","\\S300\\");
		//UploadRnd_office.uploadMessage("http://172.16.0.11:8222/rnd_office/sgservlet?test=test", "I come from sg server");
		/*UserInfo userInfo = new UserInfo();
		userInfo.setUserName("liufei");
		userInfo.setPassword("123456");
		UploadRnd_office.uploadObject("http://172.16.0.11:8222/rnd_office/sgservlet?test=test", userInfo);*/
	}
	
}
分享到:
评论

相关推荐

    http上传工具

    在IT行业中,HTTP上传工具是开发者和网络管理员日常工作中不可或缺的一部分。HTTP(超文本传输协议)是互联网上应用最广泛的一种网络协议,用于从万维网服务器传输超文本到本地浏览器的传输协议。这款名为“http上传...

    HTTP协议上传文件工具

    配置http协议上传文件的工具,并且附有安装说明!

    RestSharp.dll C# http上传工具

    C#发送http请求的高效工具,比原生的HttpWebRequest好用。

    基于HTTP文件上传工具--服务器端程序

    执行upload.exe程序启动服务器,监听端口8080,在浏览器中访问服务器...例如,upload.exe在IP地址为192.168.1.222的机器上启动,即可在局域网中的任何一台机器访问http://192.168.1.222:8080, 然后将文档上传给服务器。

    http请求测试工具,可以上传文件

    用来测试rest的一个工具类,我觉得比较好的是可以发送文件

    FTP上传工具上传工具上传工具上传工具

    FTP上传工具则是帮助用户通过FTP协议将本地计算机的文件上传到远程服务器的软件应用。本篇文章将详细探讨FTP上传工具的重要性和常见功能,以及如何利用LeapFTP这款专业FTP客户端进行文件传输。 FTP上传工具的主要...

    fz上传下载工具

    【标题】"fz上传下载工具"涉及到的主要知识点是文件传输和远程管理,特别是针对Linux系统的操作。在IT行业中,这种工具通常是系统管理员、开发者或者技术爱好者用来高效处理远程服务器文件的重要助手。以下是对这些...

    java httpclient https或http及文件中转上传工具类

    该工具类使用httpclient进行http or https请求,包括requestbody格式和form表单格式,另外含文件服务器中转上传方法,几乎支持所有常用接口调用,内含详细注释和说明文件,含jar包,及maven方式引用,拿过去直接用吧

    java开发的图片上传工具

    图片上传工具通常基于Web应用实现,Java中的Servlet是处理HTTP请求的关键技术。当用户通过浏览器提交图片上传请求时,服务器端的Servlet接收到请求,解析请求参数,包括图片文件。 2. **Multipart解析**: 由于...

    图片上传工具类

    本篇文章将详细探讨“图片上传工具类”的概念、实现方式以及相关知识点,旨在为开发者提供一个清晰的理解和实践指南。 图片上传工具类通常是为了简化用户在应用程序中上传图片的操作流程,它封装了图片的选取、预览...

    Node.js-七牛CDN上传工具

    综上所述,"Node.js-七牛CDN上传工具"是一个结合了Node.js技术与七牛云服务的实用工具,它利用Node.js的HTTP客户端库和七牛的API接口,简化了文件上传至七牛CDN的过程。开发者可以借此提高工作效率,专注于自己的...

    swift-上传工具封装并行异步多张上传串行异步按顺序一张张上传

    本文将详细讲解如何封装一个上传工具,实现并行异步多张上传以及串行异步按顺序一张张上传的机制。 首先,让我们了解“并行异步”与“串行异步”的概念。并行异步是指多个任务同时执行,不等待前一个任务完成就启动...

    上传下载工具类java

    `上传工具类使用说明.docx`文件应该是对`UploadUtils.java`类的详细使用指南,包括如何初始化、调用上传和下载方法、配置服务器地址、处理可能出现的问题等。这份文档对于开发者来说是非常宝贵的,可以快速理解并...

    iis上传漏洞利用工具

    3. **上传利用**:确认漏洞后,工具会尝试上传恶意文件到服务器的易受攻击路径。这些文件可能包含Web shell或其他恶意代码,使得攻击者能够远程控制服务器。 4. **后渗透操作**:成功上传后,攻击者可能利用这些Web...

    上传文件工具类

    此外,为了优化性能,文件上传工具类可能使用了多线程或者异步处理。Java的并发API,如`ExecutorService`、`Future`和`Callable`,可以帮助我们有效地管理这些任务。同时,工具类也可能实现了进度更新接口,以便在上...

    maven私库nexus批量上传jar工具

    go语言写的一个工具,用于批量上传本地仓库的jar到nexus私库。目前只有exe没有生成linux脚本。文件夹中有使用说明。 .\mvnDeployTool.exe -r C:\\Users\\yyc\\.m2\\repository\\org\\apache\\maven -s D:\devEnv\...

    远程文件上传下载工具

    2. 文件传输协议:远程文件上传下载工具可能使用各种文件传输协议,如FTP(文件传输协议)、SFTP(安全文件传输协议)、HTTP/HTTPS(超文本传输协议/安全超文本传输协议)或者自定义的协议。这些协议确保了数据在...

    压缩图片上传服务器工具

    "压缩图片上传服务器工具"就是针对这一需求而设计的解决方案,它可以帮助用户有效地减小图片文件大小,以便更快速地上传到服务器,同时降低存储成本。 一、图片压缩技术 图片压缩主要分为两种类型:有损压缩和无损...

    115网盘上传下载工具

    本程序采用命令行外部工具 CURL.EXE进行上传下载, 请杀毒后使用,或不使用。 现提供115网盘上传程序及批处理代码,下载的批处理代码正在完善测试中。 另115U盘的下载程序暂不提供,毕竟这样可以绕过下载网页,也...

    基于Web的上传下载工具

    【基于Web的上传下载工具】是一种实用的在线文件管理解决方案,它允许用户通过Web界面进行文件的上传和下载操作。这个工具的核心在于一个名为"updown"的程序,该程序可以作为服务器运行,监听特定的网络端口,以便与...

Global site tag (gtag.js) - Google Analytics