C#实现基于互联网的文件上传与下载的系统,需要使用什么技术?高手进
我想做一个基于互联网的文件上传与下载系统,服务器端使用B/S架构,客户端使用C/S架构。我是新手,请问用C#.NET开发都需要什么技术,具体怎么实现,请高手给个建议非常感...
我想做一个基于互联网的文件上传与下载系统,服务器端使用B/S架构,客户端使用C/S架构。我是新手,请问用C#.NET开发都需要什么技术,具体怎么实现,请高手给个建议
非常感谢三楼xx_lzj,你给了我一个很好的思路,我自己做一下。还有你有没有相关的源码,有的话发给我一些,我的邮箱lj3619lj@yahoo.com.cn。 展开
非常感谢三楼xx_lzj,你给了我一个很好的思路,我自己做一下。还有你有没有相关的源码,有的话发给我一些,我的邮箱lj3619lj@yahoo.com.cn。 展开
展开全部
首先咱们讨论一下文件上传下载系统的目的和要求:使用方便、管理方便、安全。
若想使用方便,应该是客户端免安装的,所以,使用CS结构并不合理,除非使用通用工具,比如成熟的ftp工具。
管理方便,如你理解,服务器管理用BS模式,好处就是管理员可以漫游,便于管理,然而管理员有没有全球漫游的必要?
但由于BS不需要专门的客户端,因此受攻击的可能性更大。
综上所述,我觉得你的理解不一定正确,最好问一下你的指导老师。你可以在看完下面的内容后再问。
不管怎末说,说服务器端用BS模式、客户端用CS模式的说法是显然不对的,你补充的,尽管经过上面分析,不一定合理,但还是语义还是没有问题,即服务器管理用BS模式,用户使用CS模式完成上传下载。
如果一定要按你说的做,需要一下知识和技术:
1、CS架构:
首先,工程上,应该采用成熟的FTP客户端工具作为首选方案。服务器上则使用ServerU或IIS等FTP服务器端工具。
如果一定要自己开发,应该学习Sockets编程、Windows服务项目的开发,服务器端用Windows服务打开监听线程,接受客户端连接,并将客户端请求存入队列(System.Collections.Queue对象),等待主线程处理,主线程处理请求,并调用通信线程发送文件数据。
客户端使用同样的结构,主线程发送请求,并处理队列中的数据,并存为文件,通信线程负责用同样的端口连接服务器,发送请求,接收服务器发来的文件数据。
显然,这需要定义协议结构,或者使用FTP协议规程。
2、BS架构管理服务器:
用ASP.NET开发网站,对提供下载的目录进行列表,允许网站用户删除、重命名、移动、复制、上传(创建)、下载(读取)文件和子目录,也就是说,编写一个资源管理器的Web实现。
需要了解IIS发布网站、System.IO命名空间下的文件和目录管理操作。为了网站安全,应该使用身份验证。
总之,这时一个很复杂的系统。
反之,如果用户使用BS模式上传、下载,管理员使用CS模式在局域网中进行管理,则简单得多。更具可行性、可用性、可靠性。网页中只需要FileUpLoad控件进行上传,GridView控件列出文件允许下载即可。管理界面中则只需要TreeView、ListView等控件以NetBios机器名或IP地址,通过服务器的Windows身份验证,模拟一个资源管理器即可。
哪怕是性能等价的,两种方案的工作量则相差比加大。所以我说你的老师不会如此布置。
若想使用方便,应该是客户端免安装的,所以,使用CS结构并不合理,除非使用通用工具,比如成熟的ftp工具。
管理方便,如你理解,服务器管理用BS模式,好处就是管理员可以漫游,便于管理,然而管理员有没有全球漫游的必要?
但由于BS不需要专门的客户端,因此受攻击的可能性更大。
综上所述,我觉得你的理解不一定正确,最好问一下你的指导老师。你可以在看完下面的内容后再问。
不管怎末说,说服务器端用BS模式、客户端用CS模式的说法是显然不对的,你补充的,尽管经过上面分析,不一定合理,但还是语义还是没有问题,即服务器管理用BS模式,用户使用CS模式完成上传下载。
如果一定要按你说的做,需要一下知识和技术:
1、CS架构:
首先,工程上,应该采用成熟的FTP客户端工具作为首选方案。服务器上则使用ServerU或IIS等FTP服务器端工具。
如果一定要自己开发,应该学习Sockets编程、Windows服务项目的开发,服务器端用Windows服务打开监听线程,接受客户端连接,并将客户端请求存入队列(System.Collections.Queue对象),等待主线程处理,主线程处理请求,并调用通信线程发送文件数据。
客户端使用同样的结构,主线程发送请求,并处理队列中的数据,并存为文件,通信线程负责用同样的端口连接服务器,发送请求,接收服务器发来的文件数据。
显然,这需要定义协议结构,或者使用FTP协议规程。
2、BS架构管理服务器:
用ASP.NET开发网站,对提供下载的目录进行列表,允许网站用户删除、重命名、移动、复制、上传(创建)、下载(读取)文件和子目录,也就是说,编写一个资源管理器的Web实现。
需要了解IIS发布网站、System.IO命名空间下的文件和目录管理操作。为了网站安全,应该使用身份验证。
总之,这时一个很复杂的系统。
反之,如果用户使用BS模式上传、下载,管理员使用CS模式在局域网中进行管理,则简单得多。更具可行性、可用性、可靠性。网页中只需要FileUpLoad控件进行上传,GridView控件列出文件允许下载即可。管理界面中则只需要TreeView、ListView等控件以NetBios机器名或IP地址,通过服务器的Windows身份验证,模拟一个资源管理器即可。
哪怕是性能等价的,两种方案的工作量则相差比加大。所以我说你的老师不会如此布置。
深圳云诺科技
2024-11-11 广告
2024-11-11 广告
我们深圳云诺互联科技有限公司提供的项目文件管理工具,是一款高效、便捷的在线协作平台。它支持文件的快速上传、下载与分享,确保团队成员间信息流通无阻。同时,该工具具备强大的搜索功能,帮助用户迅速定位所需文件。通过精细的权限设置,保障数据安全与隐...
点击进入详情页
本回答由深圳云诺科技提供
展开全部
你是不是要开发一个WEB应用程序呀?下面的是WEB下的一个上传文件方法.
//多文件上传函数[上传页面中所有input type=file路径不为空的文件]
public static string UploadPics()
{
string filenames="";
if(this.fPicth.Value!="")
{
//获取上传文件路径集
System.Web.HttpFileCollection files=System.Web.HttpContext.Current.Request.Files;
if(files.Count>0)
{
for(int i=0;i<files.Count;i++)
{
System.Web.HttpPostedFile postedFile = files[i];
if(postedFile.FileName!= String.Empty)
{
//文件名称
string filename="activezfj"+DateTime.Now.ToString().Replace("-","_").Replace(":","_").Replace(" ","_");
//文件扩展名称[在这里可以加入文件类型的判断]
filename+=System.IO.Path.GetExtension(files[0].FileName);
try
{
//删除已经有的文件
System.IO.File.Delete(Server.MapPath("\\Upload"+filename));
}
catch{}
postedFile.SaveAs(Server.MapPath("\\Upload\"+filename));
filenames+=filename+"|";
}
}
}
}
filenames=filename.TrimEnd('|');
return filenames;
}
//多文件上传函数[上传页面中所有input type=file路径不为空的文件]
public static string UploadPics()
{
string filenames="";
if(this.fPicth.Value!="")
{
//获取上传文件路径集
System.Web.HttpFileCollection files=System.Web.HttpContext.Current.Request.Files;
if(files.Count>0)
{
for(int i=0;i<files.Count;i++)
{
System.Web.HttpPostedFile postedFile = files[i];
if(postedFile.FileName!= String.Empty)
{
//文件名称
string filename="activezfj"+DateTime.Now.ToString().Replace("-","_").Replace(":","_").Replace(" ","_");
//文件扩展名称[在这里可以加入文件类型的判断]
filename+=System.IO.Path.GetExtension(files[0].FileName);
try
{
//删除已经有的文件
System.IO.File.Delete(Server.MapPath("\\Upload"+filename));
}
catch{}
postedFile.SaveAs(Server.MapPath("\\Upload\"+filename));
filenames+=filename+"|";
}
}
}
}
filenames=filename.TrimEnd('|');
return filenames;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
服务器端使用B/S架构,客户端使用C/S架构。
什么啊这是.
到底是B/S还是C/S?
什么啊这是.
到底是B/S还是C/S?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询