asp.net使用JS+form表单Post和Get方式提交数据
最近工作中用到了一种使用JS+form用post方式上传文件一种方式。前台用Htmlinput,使用JS方式往服务器上传文件,具体实现看代码:
前台页面使用aspx网页,使用input标签,用其file类型;此标签不使用runat="server".不使用服务器控件;这里需要加上一个iframe标签。并隐藏;设置一a标签。用来作为用户点击按钮;调用JS函数:Uploadfun();
上传
JS代码如下:
functionUploadfun(){ var_file=document.getElementById("FileUpLoad");//此处是前台页面的input标签的ID var_form=document.createElenent("form");//创建一个form document.body.appendChild(_form);//添加一个form _form.encoding="multipart/form-data";//使用该编码规程可以不限制post表单2M大小的限制 _form.method="post";//使用POST方式 _form.action="../Service/FileSrv.aspx?Type=Client&CallFun=UploadFile";//此处使用Get方式,传到前台页面的后台Server代码层; //这个是本人工作中的项目位置 _form.target="hidden_frame"; varpos=_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方式传过来的参数;
这个例子里参数Type=Client是一个模块标识,CallFun则是指出cs代码层要调用的响应函数;UploadFile();
代码如下:
privatevoidUploadFile() { // //......其他代码 // HttpFileCollectionfiles=HttpContext.Current.Request.Files; if(files.Count>0) { intlintTemp=files[0].FileName.LastIndexOf(".");//得到input标签中的file文件路径; stringlstrFileType=string.Empty; stringlstrContentType=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) { //记得要先保存到应用程序发布所在的服务器上! files[0].SaveAs(Server.MapPath("~/Files/")+"JPG1."+files[0].FileName.Substring(files[0].FileName.LastIndexOf("."))); } } } // //......其他代码 // }
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对毛票票的支持。如果你想了解更多相关内容请查看下面相关链接