设为首页 收藏本站
查看: 1198|回复: 0

利用asp.net设计ftp文件上传

[复制链接]

尚未签到

发表于 2015-5-29 01:39:26 | 显示全部楼层 |阅读模式
如果要用asp来作一个ftp文件上传的页面,我想很多人立刻就会想到要用第三方开发的组件,利用第三方的组件,虽然开发起来相对比较容易。但一般来说,免费下载的第三方的组件都有某些方面的功能限制,若要购买正版的第三方组件,对于国内的用户,花销也是一个不小的数字,就是能够承担的起,烦杂的手续也使很多人望而却步。虽然微软公司在本身的视窗系统里面也提供了一个可以用来上传文件的组件--posting acceptor。但用过这个组件的朋友们都有一种普遍的感觉,就是实在不好用。   现在好了,自从微软公司推出了.net framework以后,作为.net framework中重要组成部分的asp.net已经在内部建立了文件上传的功能,并且这种功能既是免费的,用起来又相当好用。下面我们就通过一个例子来介绍如何利用asp.net的这种功能完成文件上传。   一. 软件编写及的运行环境   微软公司视窗2000专业版和.net framework sdk beta2(微软公司开发,用以.net开发的软件开发包测试2版本) 。 如果运行的服务器的硬盘分区是ntsf分区,就请把服务器上的所有硬盘的存取属性设定为everyone , 这样可确保上传文件可以正确写入服务器的硬盘中。   二. 软件的基本功能   本软件主要完成上传本地的文件到服务器的指定目录的功能。就是在软件的运行界面中,在用户选择完要上传的文件名称,填入要上传到服务器的目录名称后,如果没有填入上传到服务器目录,则使用缺省目录" c/ " ,如果填入的目录在服务器上不存在,就建立此目录。在按" 开始上传 "按钮后,软件就把选择的文件上传到指定的目录中,然后返回上传文件的信息,即文件的名称,文件的大小及文件的类型。软件具体的操作界面及运行结果界面如下图所示 图1软件的操作界面 图2软件的运行结果界面   三. 软件设计中的重要步骤及具体解决办法   <一>.选择本地要上传到服务器的文件   首先要感谢asp.net的强大功能,他提供的html控制元件,使得我们很容易的通过一个对话框来选择要上传的文件。当然你的浏览器也必须是ie 3.02 或者netscape 3.0版本或者比这二者版本高的浏览器。通过下列语句就可以完成选择本地一个文件的工作 <input id = " lofile " type = " file " runat = " server " >   <二>.为了成功完成文件上传工作,在form中的编码必须用" multipart/form-data " , 而不用from的缺省编码" application/x-www-form-urlencoded "。具体代码如下 <form method = " post " enctype =" multipart/form-data " runat = " server "> </form >   <三>.获得上传的文件名称及对磁盘的若干操作   为了获得上传的文件名称,必须要引入一个名称空间( namesapce ) --system.io。此名称空间里面定义了许多关于文件及磁盘操作的类,在本软件中就是通过这些类的某些方法和属性来完成软件中的一些功能。   (1). 获得上传文件的名称   使用path类中的getfilename方法,具体如下 lstrfilename = lofile.postedfile.filename   ' 注 lofile.postedfile.filename 返回的是通过文件对话框选择的文件名,   这之中包含了文件的目录信息 lstrfilename = path.getfilename ( lstrfilename )   ' 去掉目录信息,返回文件名称   (2). 判断上传目录是否存在,不存在就建立   建立目录要使用到directory类中的 createdirectory 方法,判断目录是否存在要用到 directory 类中的exists方法。具体如下 if ( not directory.exists( lstrfilefolder ) ) then  directory.createdirectory ( lstrfilefolder ) end if  ' 注lstrfilefolder是用户填入的目录名称,或者是缺省的目录名称   <四>.上传选定文件到服务器上   在前面工作都已经完成以后,就可以上传文件了,上传文件相对比较简单,就用下面2行语句就可以完成上传工作。 lstrfilenamepath = lstrfilefolder & lstrfilename  ' 得到上传目录及文件名称 lofile.postedfile.saveas ( lstrfilenamepath )  '上传文件到服务器   <五>.获得并显示上传文件的属性 filename.text = lstrfilename  ' 获得文件名称 filetype.text = lofile.postedfile.contenttype  '获得文件类型 filelength.text = cstr ( lofile.postedfile.contentlength )  '获得文件长度 fileuploadform.visible = false answermsg.visible = true  '显示上传文件属性   以上就是本软件在编写时的一些比较重要的地方。   四. 程序源代码 <% @ import namespace=" system.io " %> <html > <body > <script language = "vb" runat = "server" >  sub uploadfile_clicked ( sender as object, e as eventargs )   dim lstrfilename as string   dim lstrfilenamepath as string   dim lstrfilefolder as string   ' 如果上传目录为空,就使用" c/ "作为缺省上传目录   ' 获得上传到服务器的目录名称   if dir.value <> "" then    lstrfilefolder = dir.value   else    lstrfilefolder = "c/"   end if   ' 获得文件名称   lstrfilename = lofile.postedfile.filename    ' 注 lofile.postedfile.filename 返回的是    通过文件对话框选择的文件名,这之中包含了文件的目录信息   lstrfilename = path.getfilename ( lstrfilename )    ' 去掉目录信息,返回文件名称   ' 判断上传目录是否存在,不存在就建立   if ( not directory.exists ( lstrfilefolder ) ) then    directory.createdirectory ( lstrfilefolder )   end if    '上传文件到服务器   lstrfilenamepath = lstrfilefolder & lstrfilename    ' 得到上传目录及文件名称   lofile.postedfile.saveas ( lstrfilenamepath )    ' 获得并显示上传文件的属性   filename.text = lstrfilename    ' 获得文件名称   filetype.text = lofile.postedfile.contenttype    ' 获得文件类型   filelength.text = cstr ( lofile.postedfile.contentlength )    ' 获得文件长度   fileuploadform.visible = false   answermsg.visible = true    ' 显示上传文件属性   end sub </script > <asppanel id = "fileuploadform" visible = " true " runat = "server" > <form method = "post" enctype = "multipart/form-data" runat = "server" >  <h1 > 欢迎使用asp.net页面实现文件上传 </h1 >   请选择上传到服务器的文件名称  <input id = "lofile" type = "file" runat = "server" > <br >   请输入上传到服务器的目录名称  <input id = "dir" type = "text" runat = "server" > <br >  <input type = "submit" value = "开始上传" onserverclick = "      uploadfile_clicked" runat = "server" >  <br > </form > </asppanel > <asppanel id = "answermsg" visible = " false " runat = "server" >  谢谢使用asp.net页面实现文件上传 <br >  成功上传 <asplabel id = "filename" runat = "server" /> <br >  文件大小 <asplabel id = "filelength" runat = "server" /> 字节 <br >  文件类型 <asplabel id = "filetype " runat = "server" /> <br > </asppanel > </body > </html >   五. 总结   至此我们就完成了一个比较完善的ftp文件上传软件的全部工作,由此可见asp.net的功能还是比较强大的。通过本例子,我们也看到要想灵活运用asp.net,还要深入掌握微软公司为.net framework开发的软件开发包(sdk beta 2),只有掌握了.net framework开发的软件开发包,才可能用asp.net开发出功能更强大,生命力更大的软件。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-71594-1-1.html 上篇帖子: centos光盘解压后最为软件安装源【本地架设ftp安装源,安装centos】 下篇帖子: Windows7下搭建FTP服务器(使用微软)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

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