国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - ASP.NET教程 - asp.net 模擬提交有文件上傳的表單(通過http模擬上傳文件)

asp.net 模擬提交有文件上傳的表單(通過http模擬上傳文件)

2019-07-11 16:29ASP.NET之家 ASP.NET教程

通過HTTP模擬GET或POST請求,提交數據到服務端獲取響應,比較常見些;但如上傳文件到服務端,使用html form當然簡單了,而因環境所限有時需要使用模擬方法去提交有附件(文件上傳)的表單。

我們暫且不說如何去模擬數據,通過一個簡單的form看看當請求發生時,客戶端提交了什么樣的數據給服務端。 
下面是一個簡單的html form,兩個文本輸入框,一個文件上傳(這里我選擇一張圖片),注意有文件上傳的form的enctype屬性。 

復制代碼代碼如下:


<form action="sql.aspx" method="post" enctype="multipart/form-data"> 
<input id="Text1" name="content" type="text" /><br /> 
<input id="Text2" name="uploadImg" type="text" /><br /> 
<input id="File1" type="file" name="image0" /><br /> 
<input id="Submit1" type="submit" value="submit" /> 
</form> 


為了查看表單提交時,向服務端post了什么數據,這里我使用Fiddler來查看。Fiddler確實是個不錯的工具,注意當url主機地址是localhost時Fiddler捕獲不到,需要再localhost后加一點(.)即可,打開Fiddler,瀏覽帶上面form的page,輸入數據提交,此時在Fiddler中可看到post的數據了。下面是一部份數據的截圖。 

分析其中的數據不難得出,一個表單中的數據域(input type="text")對應的格式為 

-----------------------------7da119c1004a6 
Content-Disposition: form-data; name="content" 

this is a txt value 
一個文件(input type="file")對應的格式為(通常為表單最后一個參數) 

-----------------------------7da119c1004a6 
Content-Disposition: form-data; name="image0"; filename="E:\CAI\875.jpg" 
Content-Type: image/pjpeg 

[文件內容] 
結尾處是-----------------------------7da119c1004a6-- 



有了上面的數據做參考,按照其格式組織數據,post到服務端,同樣可以達到html form提交的效果。要特別注意其格式:如回車換行,差一個都可能得不到正確的響應,還有請求的Content-Length一定計算對。下面是一個參考: 

代碼 

復制代碼代碼如下:


public string POSTfile(string v1,string v2, string file) 

string boundary = "---------------------------" + DateTime.Now.Ticks.ToString("x"); 

//請求 
WebRequest req = WebRequest.Create(@"http://localhost.:4944/WebSite1/getfile.aspx"); 
req.Method = "POST"; 
req.ContentType = "multipart/form-data; boundary=" + boundary; 

//組織表單數據 
StringBuilder sb = new StringBuilder(); 
sb.Append("--" + boundary); 
sb.Append("\r\n"); 
sb.Append("Content-Disposition: form-data; name=\"content\""); 
sb.Append("\r\n\r\n"); 
sb.Append(v1); 
sb.Append("\r\n"); 

sb.Append("--" + boundary); 
sb.Append("\r\n"); 
sb.Append("Content-Disposition: form-data; name=\"uploadImg\""); 
sb.Append("\r\n\r\n"); 
sb.Append("v2"); 
sb.Append("\r\n"); 

sb.Append("--" + boundary); 
sb.Append("\r\n"); 
sb.Append("Content-Disposition: form-data; name=\"image0\"; filename=\"e:\\a.jpg\""); 
sb.Append("\r\n"); 
sb.Append("Content-Type: image/pjpeg"); 
sb.Append("\r\n\r\n"); 

string head = sb.ToString(); 
byte[] form_data = Encoding.UTF8.GetBytes(head); 
//結尾 
byte[] foot_data = Encoding.UTF8.GetBytes("\r\n--" + boundary + "--\r\n"); 

//文件 
FileStream fileStream = new FileStream(file, FileMode.Open, FileAccess.Read); 
//post總長度 
long length = form_data.Length + fileStream.Length + foot_data.Length; 
req.ContentLength = length; 

Stream requestStream = req.GetRequestStream(); 
//發送表單參數 
requestStream.Write(form_data, 0, form_data.Length); 
//文件內容 
byte[] buffer = new Byte[checked((uint)Math.Min(4096, (int)fileStream.Length))]; 
int bytesRead = 0; 
while ((bytesRead = fileStream.Read(buffer, 0, buffer.Length)) != 0) 
requestStream.Write(buffer, 0, bytesRead); 
//結尾 
requestStream.Write(foot_data, 0, foot_data.Length); 
requestStream.Close(); 

//響應 
WebResponse pos = req.GetResponse(); 
StreamReader sr = new StreamReader(pos.GetResponseStream(), Encoding.UTF8); 
string html = sr.ReadToEnd().Trim(); 
sr.Close(); 
if (pos != null) 

pos.Close(); 
pos = null; 

if (req != null) 

req = null; 

return html; 

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产精品欧美一区二区 | 亚洲视频免费在线观看 | 亚洲 欧美 日韩 丝袜 另类 | 九九九视频 | 亚洲乱码国产乱码精品精98午夜 | 国产精品久久久久久久久久免费看 | 少妇精品久久久久久久久久 | 一区二区三区高清 | 97久久精品午夜一区二区 | 日韩超级大片免费看国产国产播放器 | 黄免费| 午夜社区 | 国产精品高清在线 | 日韩欧美精品在线 | 日韩中文字幕在线观看视频 | 精品国产视频 | 人人澡人人射 | 亚洲视频 欧美视频 | 四影虎影ww4hu55.com | 亚州av在线 | 欧美一级黄| 久久精品无码一区二区三区 | www.国产一区 | 男人的天堂久久精品 | 成人欧美一区二区三区在线播放 | 91精品国产综合久久婷婷香蕉 | 亚洲成熟少妇视频在线观看 | 亚洲欧洲自拍 | 精品久久中文字幕 | 中文字幕一区在线观看视频 | 成人国产免费视频 | 欧美jjzz | 91精品一区二区 | 日韩av一区二区在线观看 | 久久久天堂国产精品 | 国产精品视频一 | 在线成人国产 | 国产麻豆精品 | 午夜精品久久久久久久久久久久 | 国产精品正在播放 | 伊人色私人影院蜜桃va |