asp.net使用JS+form表單Post和Get方式提交數(shù)據(jù)
最近工作中用到了一種使用JS+form用post方式上傳文件一種方式。前臺(tái)用Html input,使用JS方式往服務(wù)器上傳文件,具體實(shí)現(xiàn)看代碼:
前臺(tái)頁面使用aspx網(wǎng)頁,使用input 標(biāo)簽,用其file類型;此標(biāo)簽不使用runat="server".不使用服務(wù)器控件;這里需要加上一個(gè)iframe標(biāo)簽。并隱藏;設(shè)置一a標(biāo)簽。用來作為用戶點(diǎn)擊按鈕;調(diào)用JS函數(shù):Uploadfun();
<div> <input type="file" id="FileUpLoad" name="FileUpLoad" style="width:140px;" /> <a href="javascript:void(0);" rel="external nofollow" onclick="Uploadfun()">上傳</a> <iframe name="hidden_frame" id="hidden_frame" style="width:10%;display:none;"></iframe> </div>
JS代碼如下:
function Uploadfun(){ var _file = document.getElementById("FileUpLoad"); //此處是前臺(tái)頁面的 input 標(biāo)簽的ID var _form = document.createElenent("form"); //創(chuàng)建一個(gè)form document.body.appendChild(_form);//添加一個(gè)form _form.encoding = "multipart/form-data"; //使用該編碼規(guī)程可以不限制 post表單2M大小的限制 _form.method="post";//使用POST方式 _form.action="../Service/FileSrv.aspx?Type=Client&CallFun=UploadFile"; //此處使用Get方式,傳到前臺(tái)頁面的后臺(tái)Server代碼層; // 這個(gè)是本人工作中的項(xiàng)目位置 _form.target = "hidden_frame"; var pos = _file.nextSibling; _form.appendChild(_file); _form.submit(); pos.parentNode.insertBefore(_file,pos); document.body.renoveChild(_form); }
C#層代碼:就是JS代碼中的form的action的所標(biāo)識(shí)。在FileSrv.aspx的后臺(tái)cs代碼中,我們可以通過使用getquery
方法,得到使用Get方式傳過來的參數(shù);
這個(gè)例子里參數(shù)Type=Client是一個(gè)模塊標(biāo)識(shí),CallFun則是指出cs代碼層要調(diào)用的響應(yīng)函數(shù);UploadFile();
代碼如下:
private void UploadFile() { // //......其他代碼 // HttpFileCollection files = HttpContext.Current.Request.Files; if(files.Count>0) { int lintTemp = files[0].FileName.LastIndexOf(".");//得到input標(biāo)簽中的file文件路徑; string lstrFileType = string.Empty; string lstrContentType = string.Empty; if(lintTemp!=-1 &&files[0].FileName.Length>lintTemp+1) { lstrFileType = files[0].FileName.Substring(lintTemp+1).ToUpper(); } if(lstrFileType.ToUpper()=="JPG") { if(files[0].ContentLength<10485760) { //記得要先保存到應(yīng)用程序發(fā)布所在的服務(wù)器上! files[0].SaveAs(Server.MapPath("~/Files/")+"JPG1."+files[0].FileName.Substring(files[0].FileName.LastIndexOf("."))); } } } // //......其他代碼 // }
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
- JavaScript動(dòng)態(tài)添加數(shù)據(jù)到表單并提交的幾種方式
- 使用validate.js實(shí)現(xiàn)表單數(shù)據(jù)提交前的驗(yàn)證方法
- form表單數(shù)據(jù)封裝成json格式并提交給服務(wù)器的實(shí)現(xiàn)方法
- 基于JavaScript實(shí)現(xiàn)帶數(shù)據(jù)驗(yàn)證和復(fù)選框的表單提交
- Javascript 詳解封裝from表單數(shù)據(jù)為json串進(jìn)行ajax提交
- javaScript在表單提交時(shí)獲取表單數(shù)據(jù)的示例代碼
相關(guān)文章
.NET Core實(shí)現(xiàn)分表分庫、讀寫分離的通用 Repository功能
這篇文章主要介紹了.NETCore 下支持分表分庫、讀寫分離的通用 Repository,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04.NET Core中使用HttpClient的正確姿勢(shì)
使用HttpClient可以很方便的請(qǐng)求Web API,下面這篇文章主要給大家介紹了關(guān)于.NET Core中使用HttpClient的正確姿勢(shì),文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起學(xué)習(xí)學(xué)習(xí)吧2018-09-09asp.net 關(guān)于字符串內(nèi)范圍截取的一點(diǎn)方法總結(jié)
前兩天有一位網(wǎng)友提出了一個(gè)字符串內(nèi)截取字符串的問題,除了用普通的字符串截取的方式外,我推薦的是用LINQ方式來截取。兩者實(shí)際上差別不是很大,都是采用字符串截取方式,但后者從寫法和觀察效果會(huì)比前者簡單實(shí)用得多。2010-02-02.NET?6?跨服務(wù)器聯(lián)表查詢操作MySql、Oracle、SqlServer等相互聯(lián)表
這篇文章主要介紹了.NET?6?跨服務(wù)器聯(lián)表查詢,?MySql、Oracle、SqlServer等相互聯(lián)表,在這里給大家普及下什么是多庫架構(gòu)ORM就是說一個(gè)對(duì)象可以同時(shí)操作和管理多個(gè)數(shù)據(jù)庫 我們稱為多庫架構(gòu),本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-10-10asp.net(c#)文件下載實(shí)現(xiàn)代碼
本文通過一個(gè)實(shí)例向大家介紹用C#進(jìn)行Internet通訊編程的一些基本知識(shí)。我們知道.Net類包含了請(qǐng)求/響應(yīng)層、應(yīng)用協(xié)議層、傳輸層等層次。2009-11-11Asp.Net Core添加請(qǐng)求頭自定義認(rèn)證的示例
這篇文章主要介紹了Asp.Net Core添加請(qǐng)求頭自定義認(rèn)證的示例,幫助大家更好的理解和學(xué)習(xí)使用.net技術(shù),感興趣的朋友可以了解下2021-04-04