對httpwebrequest向即有文字又有文件服務器的表單傳文件的總結

 

向即含有文字又含有文件的表單提交文件時。http的格式非常重要,錯一點都有可能發送不出去,這種錯誤都是在字符串中很不容易被發現。當 上傳文件時,首先要向服務器發送一個包含文件名地格式之類的頭信息。格式爲:

  StringBuilder sb = new StringBuilder();
            sb.Append("--");
            sb.Append(strBoundary);
            sb.Append(" ");
            sb.Append("Content-Disposition:form-data;name=");
            sb.Append("FileData");
            sb.Append(";filename=");
            sb.Append(filename);
            //sb.Append(""");
            sb.Append(" ");
            sb.Append("Content-Type:");
            sb.Append("application/octet-stream");
            sb.Append(" ");
            sb.Append(" ");

其中頭部的“--”非常重要 ,代表二進制流的開始。

然後再向服務器發送一個帶有文件內容的請求體,以下面的格式開始

Content-Type:multipart/form-data; boundary = --------7db15414291cce;

boudary 後面是一個字符串,可通過datetime.now.ticks.tostring("x");獲取

在請求的最後,是"--" + boudary + "--",另外注意,在html協議中用" "。結束邊界符需要和表單項內容保持兩個空行的距離(兩個),否則如果結束邊界符前面是一個文件的二進制流,接收方將無法獲取該文件,文件的二進制流上下文需要保持兩個空行的距離。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章