HttpURLConnection上传文件

HttpURLConnection上传文件

import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.URL;

import sun.net.www.protocol.http.HttpURLConnection;
/**
 * 主要实现文件上传,和接收方绑定接收后信息导入参数传递
 * @author zyb
 *
 */
public class HttpURLConnectionServices {
    /**
    * @param fileName 要上传的文件,列:e:/upload/SSD4k对齐分区.zip
    * @param Url 上传路径端口号和项目名称,列:http://192.168.1.209:9080/gjbmj
    * @param strSiteID 对方的站点编号
    * @param strColumnID 对方的栏目编号
    * @param strDespatcher 发送信息人
    * @param strMechanism 发送信息机构
    * @param strOther1
    */
    public static void post(String fileName ,String Url,String strSiteID,String strColumnID,
        String strDespatcher,String strMechanism,String strOther1) {
        try {
            String fname =fileName;//要上传的文件
            File file = new File(fname);
            URL url = new URL(Url+"/cms/infoShare/httpURLConnection.jsp");
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            conn.setDoOutput(true);
            conn.setDoInput(true);
            conn.setChunkedStreamingMode(1024 * 1024);
            conn.setRequestMethod("POST");
            conn.setRequestProperty("connection", "Keep-Alive");
            conn.setRequestProperty("Charsert", "UTF-8");
            conn.setConnectTimeout(50000);
            conn.setRequestProperty("Content-Type", "multipart/form-data;file="+ file.getName());
            conn.setRequestProperty("fileName",file.getName());
            conn.setRequestProperty("strSiteID", strSiteID);
            conn.setRequestProperty("strColumnID", strColumnID);
            conn.setRequestProperty("strDespatcher", strDespatcher);
            conn.setRequestProperty("strMechanism", strMechanism);
            conn.setRequestProperty("strOther1", strOther1);
            conn.connect();
            OutputStream out = new DataOutputStream(conn.getOutputStream());
            DataInputStream in = new DataInputStream(new FileInputStream(file));
            int bytes = 0;
            byte[] bufferOut = new byte[2048];
            while ((bytes = in.read(bufferOut)) != -1) {
                out.write(bufferOut, 0, bytes);
            }
            in.close();

            out.flush();
            out.close();
            BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
            String line = null;
            while ((line = reader.readLine()) != null) {
                System.out.println("---line---"+line);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        finally {
            new File(fileName).delete();
        }
    }

}

 

posted @ 2018-05-10 11:24  如.若  阅读(10616)  评论(0编辑  收藏  举报