httpurlconnection发送文件到服务端并接收

httpurlconnection发送文件到服务端并接收

客户端

import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
/*
 * @author xk
 * 上传文件到文件服务器的客户端
 */
public class FileUploadClient{
     public static void main(String[] args) {
       try {
//           URL url = new URL("http://127.0.0.1:8888/fileSys/getFile.action?filePath=/c/v/b/&fileName=test.zip");
           URL url = new URL("http://127.0.0.1:8888/fileSys/getFile.action?filePath=/c/v/b/&fileName=test.zip");
           HttpURLConnection conn = (HttpURLConnection)url.openConnection();
           // 发送POST请求必须设置如下两行

           conn.setDoOutput(true);
           conn.setUseCaches(false);
           conn.setRequestMethod("POST");
           conn.setRequestProperty("Content-Type","text/html");
           conn.setRequestProperty("Cache-Control","no-cache");
           conn.setRequestProperty("Charsert", "UTF-8");
           conn.connect();
           conn.setConnectTimeout(10000);
           OutputStream out =conn.getOutputStream();

           File file = new File("C:\\fileSys\\test.zip");

           DataInputStream in = new DataInputStream(new FileInputStream(file));

           int bytes = 0;
           byte[] buffer = new byte[1024];
           while ((bytes = in.read(buffer)) != -1) {
               out.write(buffer, 0, bytes);
           }
           in.close();
           out.flush();
           out.close(); 

           conn.getInputStream();
           conn.disconnect();
       } catch (Exception e) {
               System.out.println("发送文件出现异常!" + e);
               e.printStackTrace();
       }
    }
}

服务端

import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionSupport;
import com.property.PropertyUtil;

public class GetFileAction extends ActionSupport {

    private static final long serialVersionUID = -9108080625441081032L;
    public String execute() throws Exception
    {
        String rootPath = PropertyUtil.getProperty("fileSys.properties","fileSys.path");

        HttpServletRequest request = ServletActionContext.getRequest();
        String filePath = request.getParameter("filePath");
        String fileName = request.getParameter("fileName");

        InputStream input = request.getInputStream();
        String fileFullPath = rootPath + filePath + fileName; 

        File file = new File(rootPath + filePath);
        if(!file.exists()){
            file.mkdirs();
        }
        FileOutputStream fos = new FileOutputStream(fileFullPath);

        int size = 0;
        byte[] buffer = new byte[1024];
        while ((size = input.read(buffer,0,1024)) != -1) {
            fos.write(buffer, 0, size);
        }
        fos.close();
        input.close();

        return Action.NONE;
    }
}

如果用jersey,形成RESTfull webservices 就更有用了

时间: 2024-11-05 21:37:55

httpurlconnection发送文件到服务端并接收的相关文章

Wince 6.0适用 .NET 使用HttpRequest的Post上传文件,服务端的Web API接收Post上传上来的文件 代码

//调用的示例 private string fileName = "InStorageData.csv"; string filePath = parentPath + CommonHelper.UPLOAD + "\\" + fileName;//文件的全路径含文件名称及扩展名 string strResult = CommonHelper.SendFile(filePath, new Uri(CommonHelper.strURL + "PostFo

android上传图片、视频、文件,服务端使用wcf接收

最近一直在搞android上传图片.视频.文件,服务端使用wcf接收,本文对调试中的遇到的问题进行记录. 首先android上传一些小图片是比较容易的一天下来差不多就能调试出来,但是上传一些大的文件时就出现各种问题,包括wcf默认支持64k的文件,后来大图片可以上传了,但是传视频又有问题,上传的视频打不开,经过努力google最后问题终于解决了.作者kwstu QQ806693619 以下是调试代码:原文链接:http://www.kwstu.com/ArticleView/kwstu_2013

C语言 Socket入门示例2——模拟远程CMD(客户端向服务器发送命令,服务端执行该命令)

只要把上一篇文章"C语言 Socket入门示例1"中的两段程序彻底搞懂,那么再看本文就没有任何难度了,因为仅仅是对上篇文章中服务端代码的简单修改扩充.但是简单修改过后,功能变得异常强大,犹如一个远程CMD.随着不断深入学习,功能将会变得越来越强大.欢迎大家评论指点. 1.服务端(Server): #include <stdio.h> #include <winsock2.h> #pragma comment(lib,"ws2_32.lib")

TCP练习2: 客户端给服务端发送文本,服务端将文本转成大写再返回给客户端

import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.InetAddress; import java.net.ServerSocket; import java.net.Socket; import java.net.UnknownHostException; import org.junit.Test; /* * 客户端给服务端发送文本,服务端将

Android摄像头采集的视频数据流如何通过Socket实时发送到目标服务端

分两块: 1.取得摄像头采集的视频流 2.发送到服务器端 protected MediaRecorder mMediaRecorder; private LocalServerSocket mLss = null; private LocalSocket mReceiver, mSender = null; mLss = new LocalServerSocket("myVideoStream"); mReceiver = new LocalSocket(); //连接mLss,即接受

微信公众号开发 但是服务端仅仅接收到了 p1 p2 没有接收到p3

w 栗子 js window.location = www.xx.com?p1=123&p2=456&p3=789 但是服务端仅仅接收到了 p1 p2 没有接收到p3 原因有哪些呢? 参考PHP get方式传递参数小心掉坑 - 咖啡如同生活的专栏 - 博客频道 - CSDN.NEThttp://blog.csdn.net/gaoxuaiguoyi/article/details/48469165 除了未进行字符过滤或转码

android菜鸟学习笔记24----与服务器端交互(一)使用HttpURLConnection和HttpClient请求服务端数据

主要是基于HTTP协议与服务端进行交互. 涉及到的类和接口有:URL.HttpURLConnection.HttpClient等 URL: 使用一个String类型的url构造一个URL对象,如: URL url = new URL(http://10.0.2.2/index.php); openConnection()方法返回一个对指定url的资源的连接.返回类型是URLConnection,但是,由于这里我们一般用的是http协议,所以返回的实际是HttpURLConnection对象,故一

HttpURLConnection实现两个服务端的对接

在企业开发中,很多时候需要用到两个服务端的对接,在java类中进行连接并传递参数,其中的HttpURLConnection是一种轻量化,并且简单的方法! package httptest; import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStream;import java.net.HttpURLConnection;imp

.Net之使用Jquery Ajax通过FormData对象异步提交图片文件到服务端保存并返回保存的图片路径

前言: 首先对于图片上传而言,在我们的项目开发中可以说出现的频率是相当的高的.这篇文章中,我将要描述的是在我们.Net中如何使用Jquery Ajax通过FormData对象异步提交图片文件到后台保存,并返回保存的图片路径展示出图片,实现一个无刷新的异步图片上传的过程,当然这里我讲解的是单张图片的保存过程,对于多图片上传的话其实我们只需要在type='file'文本框中加上一个multiple可多选,然后获取input中的文件数组遍历向后台提交感兴趣的话可以尝试,不过下一篇博客将会讲解如何使用L