asp.net使用JS+form表單Post和Get方式提交數(shù)據(jù)
最近工作中用到了一種使用JS+form用post方式上傳文件一種方式。前臺用Html input,使用JS方式往服務器上傳文件,具體實現(xiàn)看代碼:
前臺頁面使用aspx網(wǎng)頁,使用input 標簽,用其file類型;此標簽不使用runat="server".不使用服務器控件;這里需要加上一個iframe標簽。并隱藏;設置一a標簽。用來作為用戶點擊按鈕;調用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"); //此處是前臺頁面的 input 標簽的ID
var _form = document.createElenent("form"); //創(chuàng)建一個form
document.body.appendChild(_form);//添加一個form
_form.encoding = "multipart/form-data"; //使用該編碼規(guī)程可以不限制 post表單2M大小的限制
_form.method="post";//使用POST方式
_form.action="../Service/FileSrv.aspx?Type=Client&CallFun=UploadFile"; //此處使用Get方式,傳到前臺頁面的后臺Server代碼層;
// 這個是本人工作中的項目位置
_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的所標識。在FileSrv.aspx的后臺cs代碼中,我們可以通過使用getquery方法,得到使用Get方式傳過來的參數(shù);
這個例子里參數(shù)Type=Client是一個模塊標識,CallFun則是指出cs代碼層要調用的響應函數(shù);UploadFile();
代碼如下:
private void UploadFile()
{
//
//......其他代碼
//
HttpFileCollection files = HttpContext.Current.Request.Files;
if(files.Count>0)
{
int lintTemp = files[0].FileName.LastIndexOf(".");//得到input標簽中的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)
{
//記得要先保存到應用程序發(fā)布所在的服務器上!
files[0].SaveAs(Server.MapPath("~/Files/")+"JPG1."+files[0].FileName.Substring(files[0].FileName.LastIndexOf(".")));
}
}
}
//
//......其他代碼
//
}
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關內容請查看下面相關鏈接
相關文章
微信公眾平臺開發(fā)之獲得ACCESSTOKEN .Net代碼解析
這篇文章主要為大家詳細解析了微信公眾平臺開發(fā)之獲得ACCESSTOKEN .Net代碼,感興趣的小伙伴們可以參考一下2016-06-06
.NET?6開發(fā)TodoList應用之實現(xiàn)DELETE請求與HTTP請求冪等性
這篇文章主要介紹了在.NET6開發(fā)中如何實現(xiàn)DELETE請求以及HTTP請求冪等性的,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下2021-12-12
log4net創(chuàng)建系統(tǒng)日志的詳細步驟
log4net是.Net下一個非常優(yōu)秀的開源日志記錄組件。log4net記錄日志的功能非常強大。它可以將日志分不同的等級,以不同的格式,輸出到不同的媒介。本文主要是簡單的介紹如何在Visual Studio2010(Asp.Net Mvc3.0)中使用log4net快速創(chuàng)建系統(tǒng)日志,如何擴展以輸出自定義字段2013-11-11
.NET/ASP.NET Routing路由(深入解析路由系統(tǒng)架構原理)
這篇文章主要介紹了.NET/ASP.NET Routing路由(深入解析路由系統(tǒng)架構原理),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-07-07
使用ASP.NET模板生成HTML靜態(tài)頁面的五種方案
使用ASP.NET模版生成HTML靜態(tài)頁面并不是難事,主要是使各個靜態(tài)頁面間的關聯(lián)和鏈接如何保持完整。本文介紹了使用ASP.NET模版生成HTML靜態(tài)頁面的五種方案2011-11-11

