仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 731|回复: 8
打印 上一主题 下一主题

[学习教程] ASP.NET网页设计经由过程.NET上传图像

[复制链接]
活着的死人 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:31:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
因为各系统的API不同,代码调用API编写程序就会遇到很多不兼容的地方,比如Java改写后的Serv-U就不能在手机上执行,手机的游戏也不能直接在微机上执行。上传之前,经由过程ASP上传图像(图像的巨细、范例都遭到限定)一样平常都是要借助内部组件来完成,.NET的呈现,使这一事情变得十分简单而且能够任意的利用Bitmap和Image范例。
在这个引导头脑下,我将依照以下步骤(在你要上传图像文件上)创立一个复杂的WEB窗体,该窗体将判别上传的文件是不是是JPEG文件、判别该文件是不是存在(需要时你能够重定名)。
1、创立一个新Web使用程序项目;
2、翻开Web窗体;
3、在窗体下面增加一个HTML表单,并把它转换成服务器控件。在这个例子里,该文件将定名为filUpload;(把HTML转换成服务器控件的办法是,在它的下面右击鼠标然后选择RunAsServerControl)
4、切换到HTMLview并增加/变动FORM标签的enctype属性为multipart/form-data。如:enctype="multipart/form-data"。
5、在Web窗体上增加一个BUTTON并定名为btnUpload。
6、向Web使用程序增加一个foldercalled/images。
7、在窗体上增加一个WebFormImage并定名为imgPicture,设置宽度和高度分离为160和120。
8、增加一个Label控件并定名为lblOutput。显现当在上传的过程当中产生的任何毛病。
9、给按钮btnUpload的单击事务增加以下代码:(假如你想剖析以下代码的细节,你能够把上面的代码复制粘贴到VS.NETIDE集成开辟情况。)
1.privatevoidbtnUpload_Click(objectsender,System.EventArgse)
2.{
3.//Initializevariables
4.stringsSavePath;
5.stringsThumbExtension;
6.intintThumbWidth;
7.intintThumbHeight;
8.
9.//Setconstantvalues
10.sSavePath="images/";
11.sThumbExtension="_thumb";
12.intThumbWidth=160;
13.intThumbHeight=120;
14.
15.//Iffilefieldisn’tempty
16.if(filUpload.PostedFile!=null)
17.{
18.//Checkfilesize(mustn’tbe0)
19.HttpPostedFilemyFile=filUpload.PostedFile;
20.intnFileLen=myFile.ContentLength;
21.if(nFileLen==0)
22.{
23.lblOutput.Text="Nofilewasuploaded.";
24.return;
25.}
26.
27.//Checkfileextension(mustbeJPG)
28.if(System.IO.Path.GetExtension(myFile.FileName).ToLower()!=".jpg")
29.{
30.lblOutput.Text="ThefilemusthaveanextensionofJPG";
31.return;
32.}
33.
34.//Readfileintoadatastream
35.byte[]myData=newByte[nFileLen];
36.myFile.InputStream.Read(myData,0,nFileLen);
37.
38.//Makesureaduplicatefiledoesn’texist.Ifitdoes,keeponappendingan
39.//incrementalnumericuntilitisunique
40.stringsFilename=System.IO.Path.GetFileName(myFile.FileName);
41.intfile_append=0;
42.while(System.IO.File.Exists(Server.MapPath(sSavePath+sFilename)))
43.{
44.file_append++;
45.sFilename=System.IO.Path.GetFileNameWithoutExtension(myFile.FileName)
46.+file_append.ToString()+".jpg";
47.}
48.
49.//Savethestreamtodisk
50.System.IO.FileStreamnewFile
51.=newSystem.IO.FileStream(Server.MapPath(sSavePath+sFilename),
52.System.IO.FileMode.Create);
53.newFile.Write(myData,0,myData.Length);
54.newFile.Close();
55.
56.//CheckwhetherthefileisreallyaJPEGbyopeningit
57.System.Drawing.Image.GetThumbnailImageAbortmyCallBack=
58.newSystem.Drawing.Image.GetThumbnailImageAbort(ThumbnailCallback);
59.BitmapmyBitmap;
60.try
61.{
62.myBitmap=newBitmap(Server.MapPath(sSavePath+sFilename));
63.
64.//Ifjpgfileisajpeg,createathumbnailfilenamethatisunique.
65.file_append=0;
66.stringsThumbFile=System.IO.Path.GetFileNameWithoutExtension(myFile.FileName)
67.+sThumbExtension+".jpg";
68.while(System.IO.File.Exists(Server.MapPath(sSavePath+sThumbFile)))
69.{
70.file_append++;
71.sThumbFile=System.IO.Path.GetFileNameWithoutExtension(myFile.FileName)+
72.file_append.ToString()+sThumbExtension+".jpg";
73.}
74.
75.//Savethumbnailandoutputitontothewebpage
76.System.Drawing.ImagemyThumbnail
77.=myBitmap.GetThumbnailImage(intThumbWidth,
78.intThumbHeight,myCallBack,IntPtr.Zero);
79.myThumbnail.Save(Server.MapPath(sSavePath+sThumbFile));
80.imgPicture.ImageUrl=sSavePath+sThumbFile;
81.
82.//Displayingsuccessinformation
83.lblOutput.Text="Fileuploadedsuccessfully!";
84.
85.//Destroyobjects
86.myThumbnail.Dispose();
87.myBitmap.Dispose();
88.}
89.catch(ArgumentExceptionerrArgument)
90.{
91.//Thefilewasntavalidjpgfile
92.lblOutput.Text="Thefilewasntavalidjpgfile.";
93.System.IO.File.Delete(Server.MapPath(sSavePath+sFilename));
94.}
95.}
96.}
97.
98.publicboolThumbnailCallback()
99.{
100.returnfalse;
}
10.运转以上创立的Web页(webpage),并分离利用JPG文件和其他范例的文件来测试毛病反省(error-checking)机制。
11.假如你有甚么成绩或倡议,请给作者留言。
-------------------------------------------------------------
关于ChrisKhoo
IwasborninMalaysiaon13thFebruary1982andmovedtoAustraliawhenIwas8.IalsostartedprogrammingaroundthattimeaswellinGWBasic.Overtheyears,IpickedupAssembly,Pascal,andC/C++.
Inmyteen/adultyearswhenWindowsprogrammingbecamethenorm,IalsolearntsomeMFC,VisualBasic,andJavaandhavecompletedsomewebprojectsutilizingASPandalsocreatedOfficeVBAmacrosforbusinesses.
Withinthistime,IpickedupaMCSDandMCSE,howeverIfinallychosetogotouniversityinsteadofworkingafulltimesoftwaredevelopmentjob.
Currently,atage20,IamstudyingCommerce(Accounting)andInformationTechnologyattheUniversityofQueensland,anditisablast.
Ienjoyworkingwithbusinessestohelpgrowtheminwhateverway(usuallyitinvolvesITinitially),challengingsoftware/webdevelopmentprojectsandlearningnewthingseveryday.(Imintothis.NETstuffnow).
听03很多师兄说主讲老师杭城方讲课很差就连旁听也没有去了)
若相依 该用户已被删除
沙发
发表于 2015-1-19 16:09:38 | 只看该作者
我的意思是.net好用,从功能上来说比JAVA强还是很明显的。
灵魂腐蚀 该用户已被删除
板凳
发表于 2015-1-27 05:18:36 | 只看该作者
大哥拜托,Java在95年就出来了,微软垄断个妹啊,服务器市场微软完全是后后来者,当年都是Unix的市场,现在被WindowsServer和Linux抢下大片,包括数据库也一样。
不帅 该用户已被删除
地板
发表于 2015-2-5 02:09:56 | 只看该作者
现在的ASP.net分为两个版本:1.1和2.0Asp.net1.1用VS2003(visualstudio2003)编程。Asp.net2.0用VS2005(visualstudio2005)编程。现在一般开发用的是VS2003。
蒙在股里 该用户已被删除
5#
发表于 2015-2-11 02:43:59 | 只看该作者
但是目前在CGI中使用的最为广泛的是Perl语言。所以,狭义上所指的CGI程序一般都是指Perl程序,一般CGI程序的后缀都是.pl或者.cgi。
admin 该用户已被删除
6#
发表于 2015-3-1 19:55:15 | 只看该作者
可以通过在现有ASP应用程序中逐渐添加ASP.NET功能,随时增强ASP应用程序的功能。ASP.NET是一个已编译的、基于.NET的环境,可以用任何与.NET兼容的语言(包括VisualBasic.NET、C#和JScript.NET.)创作应用程序。另外,任何ASP.NET应用程序都可以使用整个.NETFramework。开发人员可以方便地获得这些技术的优点,其中包括托管的公共语言运行库环境、类型安全、继承等等。
精灵巫婆 该用户已被删除
7#
发表于 2015-3-10 23:03:12 | 只看该作者
同时也感谢博客园给我们这个平台,也感谢博客园的编辑们做成专题引来这么多高人指点。
冷月葬花魂 该用户已被删除
8#
发表于 2015-3-17 15:57:49 | 只看该作者
是目前ASP在UNIX/Linux上的应用可以说几乎为0)。所以平台的局限性和ASP自身的安全性限制了ASP的广泛应用。
第二个灵魂 该用户已被删除
9#
发表于 2015-3-24 10:30:48 | 只看该作者
在调试JSP代码时,如果程序出错,JSP服务器会返回出错信息,并在浏览器中显示。这时,由于JSP是先被转换成Servlet后再运行的,所以,浏览器中所显示的代码出错的行数并不是JSP源代码的行数。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-22 23:01

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表