`
lijunjie
  • 浏览: 386598 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

将本地图片或者网上图片用post方式上传到图片服务器

阅读更多
一个简单的应用
package com.bj95ol.test;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;

import javax.servlet.ServletInputStream;
import javax.servlet.http.HttpServletRequest;

import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;

public class SendImgToWeb {
	/**
	 * 获得网络图片地址。或者图片地址
	 * @param url
	 * @return
	 */
	public String getContentFromWeb(String url)
	{
		String filecontent="";
		InputStream is=null;
		BASE64Encoder base=new BASE64Encoder();
		if(url.startsWith("http"))
		{
			try {
				HttpURLConnection urlconn=(HttpURLConnection)new URL(url).openConnection();
				is=urlconn.getInputStream();
			} catch (MalformedURLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		int n=0;
		byte[] b=null;
		try {
			while((n=is.available())>0)
			{
				n=is.read(b);
				if(n==-1)break;
				filecontent=filecontent+base.encode(b);
				
			}
			is.close();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return filecontent;
	}
	
	/**
	 * 将图片内容用post方式发送到url中
	 * @param url
	 * @param postcontent
	 */
	
	public void sendImgbyPost(String url,String postcontent)
	{
		try {
			HttpURLConnection huc=(HttpURLConnection)new URL(url).openConnection();
			huc.setDoInput(true);
			huc.setDoOutput(true);
			huc.setRequestMethod("POST");
			
			PrintWriter pw=new PrintWriter(new OutputStreamWriter(huc.getOutputStream()));
			pw.print(postcontent);
			pw.close();
			
			BufferedReader br=new BufferedReader(new InputStreamReader(huc.getInputStream()));
			String content="";
			String line=br.readLine();
			while(line!=null)
			{
				content=content+line;
				line=br.readLine();
				
			}
			
		} catch (MalformedURLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}
	/**
	 * 在服务器端获取发送过来的内容
	 * @param request
	 * @return
	 */
	public String receiveContent(HttpServletRequest request)
	{
		int a = 0;
		 byte[] b = new byte[4096];
		String result="";
		try
		{
		 ServletInputStream sis=request.getInputStream();
		int line=sis.readLine(b, 0, b.length);
		while(line!=-1)
		{
		result=result+new String(b,0,line);
		line=sis.readLine(b, 0, b.length);
		}
		}
		catch(Exception e)
		{
		e.printStackTrace();
		}
		return  result;
	}
	
	/**
	 * 将接受过来的信息生成文件
	 * @param request
	 * @param filename
	 */
	public void createFile(HttpServletRequest request,String filename)
	{
		File file=new File(filename);
		try {
			FileOutputStream fos=new FileOutputStream(file);
			String content=receiveContent(request);
			BASE64Decoder base=new BASE64Decoder();
			byte[] b=base.decodeBuffer(content);
			fos.write(b);
			fos.close();
			
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}

}




5
2
分享到:
评论

相关推荐

    vc++ asp.net 采用post方式上传文件,服务器用asp.net实现

    用vc++6.0开发的http post 应用,上传本地文件到服务器,服务采用asp.net接收,存在服务器指定位置。用vc++6,0封装了CHttp类,有完整的两个实例,亲测可用。

    java多图片上传、删除、预览,post提交

    jdk1.7, 纯java方式,借助layer/layui插件,实现多图片上传、删除、预览;实现post提交到服务端;可以直接根目录访问 whb.jsp

    HBuilder+HTML5 Plus+MUI实现拍照或者相册选择图片上传

    Uploader模块管理网络上传任务,用于从本地上传各种文件到服务器,并支持跨域访问操作。通过plus.uploader可获取上传管理对象。Uploader上传使用HTTP的POST方式提交数据,数据格式符合Multipart/form-data规范,即...

    VBS实现的POST文件上传类(支持二进制)

    ''' VBS文件上传类,二进制方式上传 Class vbsFileUpload Public c_strDestURL ' 文件上传URL http://127.0.0./upload_file.php Public c_strFileName ' 要上传的本地文件名 Public c_strFieldName ' 字段名,...

    node+express实现本地部署服务器加载本地资源和接口

    # web服务器说明文档(node+express) ### 1.首先自定义数据文件,进行上传,上传地址:...请接口求方式post,请求接口固定为 `'/get_data'`,参数为上传的文件名称`name: test_data`

    使用Vue实现图片上传的三种方式

    在项目中经常会遇到图片上传功能,今天脚本之家小编给大家带来了使用Vue实现图片上传的三种方式,感兴趣的朋友一起看看吧

    java 监听本地文件自动上传服务器

    1.JAVA 监听文件夹变化 2.模拟POST提交文件流同步服务器文件

    IIS+SVN实现本地上传服务器自动更新

    svn服务器配置略过,只要确保客户机可以使用服务器svn服务器即可 首先服务器建立一个负责服务器下载更新的用户 例如:账号admin,密码admin,没有上传权限,之后在服务器建立的svn库 例如: 1我把新建svn库建立在E:\...

    将手机文件上传至网站服务器

    本范例实现文件上传功能的方法,就是仿真Web应用程序第一个程序中的FORM,以POST的方式对服务器上的接收程序发出request,触发该程序运行文件写入服务器的动作。实现前,需先有一台已假设完成的WEB SERVER,并编写一...

    asp无组件上传类v0.98(无刷新ajax上传,可检查图片木马,支持多文件批量上传,utf-8版)

    请将本程序放到你的虚拟主机上运行,如果本地有iis也可以。有些同学有简易iis服务器,不适用本程序的,因为有部分中文字符不能识别导致无法运行。 如果需要上传单文件可以把index.htm中的multiple="multiple"删除掉...

    wangEditor3上传本地视频

    //上传视频 editor.customConfig.customUploadVideo = function (files, obj) { var date = new FormData(); date.append("file", files[0]); $.ajax({ type: "POST", url: "../../import/upload", data: ...

    vbs脚本扫描文件将更新文件自动上传代码到服务器

    开发环境是本人的PC下的VC6.0,实际上编译环境是Redhat6.5,每次本地代码更新都要通过FTP工具上传到服务器编译,非常麻烦。为此编制了一个FTPvbs ftp 自动登录 ,文件更新扫描可以自动将2分钟内编辑的文件上传到...

    ruby使用restclient上传服务器本地文件示例

    使用RestClient上传服务器本地文件 代码如下:url = ‘http://xx’ #post到urlfield_hash = {key: key, token: token} #post数据request = RestClient.post url, field_hash.merge(file: File.new(File.join(...

    PHP实现通过CURL上传文件功能示例

    PHP使用CURL上传文件只需发送一个POST请求就可以了,在请求中设置某个字段为需要上传的文件全路径,并且以”@”开头,然后使用CURL把该变量以POST方式发送到服务器,在服务端即可以从超级全局变量$_FILES中取到相应...

    文件上传指南pdf

    本地的文件上传到 Web 服务器端。 文件上传要求客户端必须用 Post 方式提交数据,并且在 form 标签的 enctype 属性值必 须为: "multipart/form-data" ,表示本次请求可以上传文件,该属性的默认值是 "application/x...

    一个用JAVA Applet做的批量上传客户端

    用JAVA Applet做的一个批量上传客户端,用户可以多选文件进行上传,服务端可使用ASP,PHP,JSP等实现。客户端会将文件分卷POST到服务端,服务端需要接收这部分文件并保存为临时文件;分卷上传结束后客户端将调用...

    文件的上传和下载帮助类C#实现

    3. 文件传输协议(FTP):使用专门设计的FTP客户端软件或命令行工具,通过FTP协议连接到FTP服务器,将本地文件上传到服务器指定目录。 4. 基于Socket编程:编写客户端和服务器端代码,通过Socket建立连接,然后传输...

    绝对好用Flash多文件大文件上传控件

    本实例采用的是Uploadify上传插件,.NET程序,源程序是从网上找的,但是有Bug,已经修改好,并标有部分注释。绝对好用,支持单文件、多文件上传,支持大文件上传,已经过多方面测试,保证好用。 以下附上Uploadify...

    swoole#swoole-wiki#7.5.1 - CURL发送POST请求服务器端超时1

    使用Nginx做前端代理,由Nginx处理100-Continue重新编译Swoole启用100-Continue的支持,需要手工修改swoole_config

    微标ASP无组件上传类 v1.3(无刷新、多文件上传,并且可查杀木马,utf-8格式)

    查杀图片木马原理:一些图片会被不法分子插入些可执行的asp代码,在被include的时候悄悄执行,我们将图片以文本方式进行检查,判断是否包含某些关键字,如果包含就停止上传,总而提高了服务器的安全。 本来想打包个...

Global site tag (gtag.js) - Google Analytics