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();
        }
    }

}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM