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)識。在FileSrv.aspx的后臺(tái)cs代碼中,我們可以通過使用getquery方法,得到使用Get方式傳過來的參數(shù);
這個(gè)例子里參數(shù)Type=Client是一個(gè)模塊標(biāo)識,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)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(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)文章
ASP.net處理XML數(shù)據(jù)實(shí)例淺析
這篇文章主要介紹了ASP.net處理XML數(shù)據(jù)實(shí)例淺析,分析了XML的原理與用法,并以實(shí)例形式講述了asp.net處理XML數(shù)據(jù)的方法,需要的朋友可以參考下2014-10-10
微信公眾平臺(tái)開發(fā)之獲得ACCESSTOKEN .Net代碼解析
這篇文章主要為大家詳細(xì)解析了微信公眾平臺(tái)開發(fā)之獲得ACCESSTOKEN .Net代碼,感興趣的小伙伴們可以參考一下2016-06-06
.Net Core學(xué)習(xí)教程之在Mvc中簡單的使用日志組件
這篇文章主要給大家介紹了關(guān)于.Net Core學(xué)習(xí)教程之在Mvc中簡單使用日志組件的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-06-06
.NET?6開發(fā)TodoList應(yīng)用之實(shí)現(xiàn)DELETE請求與HTTP請求冪等性
這篇文章主要介紹了在.NET6開發(fā)中如何實(shí)現(xiàn)DELETE請求以及HTTP請求冪等性的,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2021-12-12
log4net創(chuàng)建系統(tǒng)日志的詳細(xì)步驟
log4net是.Net下一個(gè)非常優(yōu)秀的開源日志記錄組件。log4net記錄日志的功能非常強(qiáng)大。它可以將日志分不同的等級,以不同的格式,輸出到不同的媒介。本文主要是簡單的介紹如何在Visual Studio2010(Asp.Net Mvc3.0)中使用log4net快速創(chuàng)建系統(tǒng)日志,如何擴(kuò)展以輸出自定義字段2013-11-11
.NET/ASP.NET Routing路由(深入解析路由系統(tǒng)架構(gòu)原理)
這篇文章主要介紹了.NET/ASP.NET Routing路由(深入解析路由系統(tǒng)架構(gòu)原理),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-07-07
使用ASP.NET模板生成HTML靜態(tài)頁面的五種方案
使用ASP.NET模版生成HTML靜態(tài)頁面并不是難事,主要是使各個(gè)靜態(tài)頁面間的關(guān)聯(lián)和鏈接如何保持完整。本文介紹了使用ASP.NET模版生成HTML靜態(tài)頁面的五種方案2011-11-11
.NET發(fā)送郵件的實(shí)現(xiàn)方法示例
這篇文章主要給大家介紹了關(guān)于.NET發(fā)送郵件的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用.net具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-06-06

