精灵巫婆 发表于 2015-1-16 14:22:22

NET网页编程之在MVC中完成复杂文件上传功能示例

在经过全球个人PC市场占有90%的微软对asp.net不断优化与整合后,asp.net与微软自身平台的动用上更加的高效,加上asp.net在应用上非常容易上手,相信asp.net仍会是最多客户选用的脚本语言,并会在未来几年继续领跑。在MVC中完成文件上传与传统的WebForm上传文件办法都差未几,在aspx页面放一个file标签,然后在
actionname办法中处置用户上传的文件。本章我们以一个最经常使用的上传图片为例,详细示比方下:

1,aspx页面处置以下:
我们在aspx页面放一个file标签
<table>
<tr>
<td>
申明:只能上传gif图片,网站不限制图片巨细,请上传符合巨细的图片,假如图片巨细过年夜,会形成网
站变形等成绩。
</td>
</tr>
<tr>
<td>
Logo:<inputname="uploadpic"type="file"size="80"/>
<inputtype="submit"value="保留"name="action"/>
<divclass="red">
<%:Html.ValidationMessage("validationLogoError")%></div>
</td>
</tr>
</table>

<%:Html.ValidationMessage("validationLogoError")%>用来显现服务器前往的毛病。

Controller的actionname办法以下:
publicActionResultLogo()
{
//判别Request中是不是有吸收Files文件
if(Request.Files.Count!=0)
{
//HttpPostedFileBase类,供应对用户上载的独自文件的会见
//猎取到用户上传的文件
HttpPostedFileBasefile=Request.Files;
//猎取用户上传文件的后缀名
stringExtension=Path.GetExtension(file.FileName);
//从头定名文件
stringnewFileName="logo"+Extension;
       
//判别图片后缀是否是为jpg,假如不是,前往毛病,假如是,使用file.SaveAs保留图片。注重在保留
图片时,要利用Server.MapPath取到假造路径所对应的物料路径
if(!Extension.Equals(".jpg"))
{
ModelState.AddModelError("validationLogoError","只能上传jpeg范例图片");
}
else
{
file.SaveAs(Path.Combine(Server.MapPath("/Content/Logo/"),newFileName));
}
}
returnView();
}


复杂的几句代码就完成了文件的上传功效,是否是很复杂呢?
该demos展现的功效很少,仅是完成了文件的上传,未对文件的巨细等做限定,但愿能对人人有所匡助。也许C#刚上市的时候有些抄袭Java吧,但自从C#2.0上市之后,整个局面就扭转乾坤了,不但Java在模仿C#,而且他从来都没能跟得上C#的脚步。

仓酷云 发表于 2015-1-18 13:40:02

是指转换后的Servlet程序代码的行数。这给调试代码带来一定困难。所以,在排除错误时,可以采取分段排除的方法(在可能出错的代码前后输出一些字符串,用字符串是否被输出来确定代码段从哪里开始出错)。

老尸 发表于 2015-1-26 21:55:12

虽然在形式上JSP和ASP或PHP看上去很相似——都可以被内嵌在HTML代码中。但是,它的执行方式和ASP或PHP完全不同。在JSP被执行的时候,JSP文件被JSP解释器(JSPParser)转换成Servlet代码,然后Servlet代码被Java编译器编译成.class字节文件,这样就由生成的Servlet来对客户端应答。所以,JSP可以看做是Servlet的脚本语言(ScriptLanguage)版。

不帅 发表于 2015-2-4 22:31:48

ASP.net1.1和2.0在程序上的语法也有很大不同,现在2.0属于新出来的,不知道半年后会不会有3.0(说笑一下)。Windows2003系统自动支持ASP和ASP.net环境,不用安装任何程序。Asp.net属于编译语言。ASP的最大不同(ASP属于解释语言)。

小女巫 发表于 2015-2-10 22:13:45

业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高,你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。

透明 发表于 2015-3-1 17:09:09

但是java靠开源打出的一片天地,特别是在微软的垄断下能打开今天的局面还是有它的生命力的。

小魔女 发表于 2015-3-10 21:40:19

Servlet却在响应第一个请求的时候被载入,一旦Servlet被载入,便处于已执行状态。对于以后其他用户的请求,它并不打开进程,而是打开一个线程(Thread),将结果发送给客户。由于线程与线程之间可以通过生成自己的父线程(ParentThread)来实现资源共享,这样就减轻了服务器的负担,所以,JavaServlet可以用来做大规模的应用服务。

山那边是海 发表于 2015-3-17 11:23:40

在一个项目中谁敢保证每天几千万甚至几亿条的数据不丢失?谁敢保证应用的高可靠性?有可以借签的项目吗?
页: [1]
查看完整版本: NET网页编程之在MVC中完成复杂文件上传功效示例