1. asp.net C# b/s 系统 怎么实现文件的上传下载。
FileUpload 这个控件是上传 FileUpload .saveAs(路径)方法把上传文件传到一个路径中,下载最简单的是直接把url路径连到你那个文件的路径就会直接下载
2. 万由系统怎么上传下载文件
文件上传:1.app端调用上传接口,将文件转换为base64编码的方式,传给接口,然后存入数据库; 2.app调用上传接口,将文件上传至万由系统等,然后转码完成后,调用后台接口,返回路径,存入数据库; 3.在2的基础上,将万由换成本地文件服务器 。文件下载可在页面找到下载按钮下载即可。
3. 创建一个内部共享系统,可以实现文件的上传,下载,修改等操作。serv-u
1、利用windows 2003操作系统。建立一个文件共享服务器。可以满足你的需求。根据帐号管理内要求,不同容的帐号开通不同权限。从而对文件进行控制。2、还可以用SVN服务器来替代文件共享服务器。如果用得熟悉的话,这个使用起来更为方便。SVN服务器还可以记录文件修改时间,而且可以恢复到某个时间段的样子。以上两种方法,你可以尝试一下。自己在网上搜索一下相关资料,如果有疑问,可以再问我。
4. 用java写一个从linux上传下载的系统
可以用ftp实现文件的上传下载,跟linux还是windows没有关系。把linux作为remote server就可以了。public static void backupUploadWithCommonsFTP(File fileToBeUpload) { FTPClient f = new FTPClient(); boolean backupDirectoryExist = false; boolean fileToBeUploadExist = false; FTPFile backupDirectory = null; try { f.connect(server.getServer()); f.login(server.getUsername(), server.getPassword()); FTPFile[] directories = f.listDirectories(); // Check for existence of backup directory for (FTPFile file : directories) { String filename = file.getName(); if (file.isDirectory() && filename.equalsIgnoreCase("backup")) { backupDirectory = file; backupDirectoryExist = true; break; } } if (!) { f.makeDirectory("backup"); } // Check if file already exist on the server f.changeWorkingDirectory("files"); FTPFile[] files = f.listFiles(); f.changeWorkingDirectory("backup"); String filePathToBeBackup="/home/user/backup/"; String prefix; String suffix; String fileNameToBeBackup; FTPFile fileReadyForBackup = null; f.setFileType(FTP.BINARY_FILE_TYPE); f.setFileTransferMode(FTP.BINARY_FILE_TYPE); for (FTPFile file : files) { if (file.isFile() && file.getName().equals(fileToBeUpload.getName())) { prefix = FilenameUtils.getBaseName(file.getName()); suffix = ".".concat(FilenameUtils.getExtension(file.getName())); fileNameToBeBackup = prefix.concat(Calendar.getInstance().getTime().toString().concat(suffix)); filePathToBeBackup = filePathToBeBackup.concat(fileNameToBeBackup); fileReadyForBackup = file; fileToBeUploadExist = true; break; } } // If file already exist on the server create a backup from it otherwise just upload the file. if(fileToBeUploadExist){ ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); f.retrieveFile(fileReadyForBackup.getName(), outputStream); InputStream is = new ByteArrayInputStream(outputStream.toByteArray()); if(f.storeUniqueFile(filePathToBeBackup, is)){ JOptionPane.showMessageDialog(null, "Backup succeeded."); f.changeWorkingDirectory("files"); boolean reply = f.storeFile(fileToBeUpload.getName(), new FileInputStream(fileToBeUpload)); if(reply){ JOptionPane.showMessageDialog(null,"Upload succeeded."); }else{ JOptionPane.showMessageDialog(null,"Upload failed after backup."); } }else{ JOptionPane.showMessageDialog(null,"Backup failed."); } }else{ f.changeWorkingDirectory("files"); f.setFileType(FTP.BINARY_FILE_TYPE); f.enterLocalPassiveMode(); InputStream inputStream = new FileInputStream(fileToBeUpload); ByteArrayInputStream in = new ByteArrayInputStream(FileUtils.readFileToByteArray(fileToBeUpload)); boolean reply = f.storeFile(fileToBeUpload.getName(), in); System.out.println("Reply code for storing file to server: " + reply); if(!f.completePendingCommand()) { f.logout(); f.disconnect(); System.err.println("File transfer failed."); System.exit(1); } if(reply){ JOptionPane.showMessageDialog(null,"File uploaded successfully without making backup." + "\nReason: There wasn't any previous version of this file."); }else{ JOptionPane.showMessageDialog(null,"Upload failed."); } } //Logout and disconnect from server in.close(); f.logout(); f.disconnect(); } catch (IOException e) { e.printStackTrace(); }}
5. BT和迅雷,作为典型的P2P文件下载系统,各有什么特点使用了哪些技术
如今BT软件很多,BitTorrent、utorrent、BitComit、Vuze……这些是单一的BT客户端,只玩BT种子,主张分享的,上传下载一切都透明公开。而迅雷则是跨协议的客户端,所谓的“别人的资源都是我的资源”,网站http、个人ftp、BT用户的共享、emule用户的共享,当然还包括它们自己的迅雷用户的共享,全方位搜刮资源的一个程序,上传则是后台里偷偷摸摸的了,因为迅雷做为一个国产的流氓软件,深知大多数国人的无知和自私,所以在上传功能方面费尽了脑子,隐藏上传界面、上传什么也不告诉你,至于现在所谓的离线功能,说白了,就是让你掏钱去买它们服务器里已经下好的资源而已,什么1PB空间,虚拟出来的东西,要多大就能有多大,就好比,你有1PB的硬盘,装满了4.7G的DVD的iso镜像文件,现在有一款虚拟光驱程序,可以虚拟出无数个盘符,那么你可以“制造”出多少个4.7G的虚拟空间?
6. 什么是文件上传下载系统
首先咱们讨论一下文件上传下载系统的目的和要求:使用方便、管理方便、安全。若想使用方便,应该是客户端免安装的,所以,使用CS结构并不合理,除非使用通用
7. 如何实现在网站的文件上传和下载功能
呵呵, ASP的到来问啦.——-给你引用一段。文件的上传下载是我们在实际项目开发过程中经常需要用到的技术,这里给出几种常见的方法,本文主要内容包括:1、如何解决文件上传大小的限制2、以文件形式保存到服务器3、转换成二进制字节流保存到数据库以及下载方法4、上传Internet上的资源第一部分: 首先我们来说一下如何解决ASP.NET中的文件上传大小限制的问题,我们知道在默认情况下ASP.NET的文件上传大小限制为2M,一般情况下,我们可以采用更改WEB.Config文件来自定义最大文件大小,如下:<httpRuntime executionTimeout="300" maxRequestLength="40960" useFullyQualifiedRedirectUrl="false"/>这样上传文件的最大值就变成了4M,但这样并不能让我们无限的扩大MaxRequestLength的值,因为ASP.NET会将全部文件载入内存后,再加以处理。解决的方法是利用隐含的HttpWorkerRequest,用它的GetPreloadedEntityBody和ReadEntityBody方法从IIS为ASP.NET建立的pipe里分块读取数据。实现方法如下:IServiceProviderprovider=(IServiceProvider)HttpContext.Current;HttpWorkerRequestwr=(HttpWorkerRequest)provider.GetService(typeof(HttpWorkerRequest));byte[]bs=wr.GetPreloadedEntityBody();.if(!wr.IsEntireEntityBodyIsPreloaded()){intn=1024;byte[]bs2=newbyte[n];while(wr.ReadEntityBody(bs2,n)>0){..}}这样就可以解决了大文件的上传问题了。第二部分: 下面我们来介绍如何以文件形式将客户端的一个文件上传到服务器并返回上传文件的一些基本信息首先我们定义一个类,用来存储上传的文件的信息(返回时需要)。public class FileUpLoad{ public FileUpLoad() { }/**//// <summary> /// 上传文件名称 /// </summary> public string FileName { get { return fileName; } set { fileName = value; } } private string fileName; /**//// <summary> /// 上传文件路径 /// </summary> public string FilePath { get { return filepath; } set { filepath = value; } } private string filepath;/**//// <summary> /// 文件扩展名 /// </summary> public string FileExtension { get { return fileExtension; } set { fileExtension = value; } } private string fileExtension;}另外我们还可以在配置文件中限制上传文件的格式(App.Config):<?xml version="1.0" encoding="gb2312" ?><Application> <FileUpLoad> <Format>.jpg|.gif|.png|.bmp</Format> </FileUpLoad></Application>这样我们就可以开始写我们的上传文件的方法了,如下:public FileUpLoad UpLoadFile(HtmlInputFile InputFile,string filePath,string myfileName,bool isRandom) { FileUpLoad fp = new FileUpLoad(); string fileName,fileExtension; string saveName; // //建立上传对象 // HttpPostedFile postedFile = InputFile.PostedFile; fileName = System.IO.Path.GetFileName(postedFile.FileName); fileExtension = System.IO.Path.GetExtension(fileName); // //根据类型确定文件格式 // AppConfig app = new AppConfig(); string format = app.GetPath("FileUpLoad/Format");// //如果格式都不符合则返回 // if(format.IndexOf(fileExtension)==-1) { throw new ApplicationException("上传数据格式不合法"); } // //根据日期和随机数生成随机的文件名 // if(myfileName != string.Empty) { fileName = myfileName; } if(isRandom) { Random objRand = new Random(); System.DateTime date = DateTime.Now; //生成随机文件名 saveName = date.Year.ToString() + date.Month.ToString() + date.Day.ToString() + date.Hour.ToString() + date.Minute.ToString() + date.Second.ToString() + Convert.ToString(objRand.Next(99)*97 + 100); fileName = saveName + fileExtension; } string phyPath = HttpContext.Current.Request.MapPath(filePath);//判断路径是否存在,若不存在则创建路径 DirectoryInfo upDir = new DirectoryInfo(phyPath); if(!upDir.Exists) { upDir.Create(); } // //保存文件 // try { postedFile.SaveAs(phyPath + fileName); fp.FilePath = filePath + fileName; fp.FileExtension = fileExtension; fp.FileName = fileName; } catch { throw new ApplicationException("上传失败!"); }//返回上传文件的信息 return fp;}然后我们在上传文件的时候就可以调用这个方法了,将返回的文件信息保存到数据库中,至于下载,就直接打开那个路径就OK了。第三部分: 这里我们主要说一下如何以二进制的形式上传文件以及下载。首先说上传,方法如下:public byte[] UpLoadFile(HtmlInputFile f_IFile){ //获取由客户端指定的上传文件的访问 HttpPostedFile upFile=f_IFile.PostedFile; //得到上传文件的长度 int upFileLength=upFile.ContentLength; //得到上传文件的客户端MIME类型 string contentType = upFile.ContentType; byte[] FileArray=new Byte[upFileLength]; Stream fileStream=upFile.InputStream; fileStream.Read(FileArray,0,upFileLength); return FileArray;}这个方法返回的就是上传的文件的二进制字节流,这样我们就可以将它保存到数据库了。下面说一下这种形式的下载,也许你会想到这种方式的下载就是新建一个aspx页面,然后在它的Page_Load()事件里取出二进制字节流,然后再读出来就可以了,其实这种方法是不可取的,在实际的运用中也许会出现无法打开某站点的错误,我一般采用下面的方法:首先,在Web.config中加入:<add verb="*" path="openfile.aspx" type="RuixinOA.Web.BaseClass.OpenFile, RuixinOA.Web"/>这表示我打开openfile.aspx这个页面时,系统就会自动转到执行RuixinOA.Web.BaseClass.OpenFile 这个类里的方法,具体实现如下:using System;using System.Data;using System.Web;using System.IO;using Ruixin.WorkFlowDB;using RXSuite.Base;using RXSuite.Component;using RuixinOA.BusinessFacade;namespace RuixinOA.Web.BaseClass{ /**//// <summary> /// NetUFile 的摘要说明。 /// </summary> public class OpenFile : IHttpHandler { public void ProcessRequest(HttpContext context) { //从数据库中取出要下载的文件信息 RuixinOA.BusinessFacade.RX_OA_FileManager os = new RX_OA_FileManager(); EntityData data = os.GetFileDetail(id); if(data != null && data.Tables["RX_OA_File"].Rows.Count > 0) { DataRow dr = (DataRow)data.Tables["RX_OA_File"].Rows[0]; context.Response.Buffer = true; context.Response.Clear(); context.Response.ContentType = dr["CContentType"].ToString(); context.Response.AddHeader("Content-Disposition","attachment;filename=" + HttpUtility.UrlEncode(dr["CTitle"].ToString())); context.Response.BinaryWrite((Byte[])dr["CContent"]); context.Response.Flush(); context.Response.End(); }} public bool IsReusable { get { return true;} } }}执行上面的方法后,系统会提示用户选择直接打开还是下载。这一部分我们就说到这里。第四部分: 这一部分主要说如何上传一个Internet上的资源到服务器。前面我们有一篇文章详细介绍了使用方法,这里我不再多说。请参考:将动态页面转化成二进制字节流 第五部分:总结 今天简单的介绍了几种文件上传与下载的方法,都是在实际的项目开发中经常需要用到的,可能还有不完善的地方,希望大家可以互相交流一下项目开发中的经验。写的不好的地方,请指正,谢谢!
8. C#实现基于互联网的文件上传与下载的系统,需要使用什么技术高手进
首先咱们讨论一下文件上传下载系统的目的和要求:使用方便、管理方便、安全。若想使用方便,应该是客户端免安装的,所以,使用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身份验证,模拟一个资源管理器即可。 哪怕是性能等价的,两种方案的工作量则相差比加大。所以我说你的老师不会如此布置。
9. linux 系统间的文件上传下载
默认情况下匿名帐户的ftp主目录是/var/ftp,这个不需要修改.同时也不能为该目录设置写入权限,否则会造成匿名帐户不能登录.要开放匿名上传的话,只要在vsftpd.conf文件中加入下面选项:anon_upload_enable=yes然后设置/var/ftp/pub目录的权限为具有写入权限chmod 777 /var/ftp/pub这样匿名帐户登录后就可以向pub目录上传文件了,至于匿名下载,默认是有这个权限的,对应的配置项为:anonymous_enable=yes
10. php上传下载系统怎么实现
随便下个开源的上传文件程序 看看代码即可 核心函数 COPYPHP文件上传的原理及实现利用php的文件函数来实现上传这段代码分为两个文件,一个为upload.html,一个是upload.phpupload.html <form enctype="multipart/form-data" action="upload.php" method="post"> <input type="hidden" name="max_file_size" value="100000"> <input name="userfile" type="file"> <input type="submit" value="上传文件"> </form> 其中,请注意 值得注意的是文件upload.html中表单选项 MAX_FILE_SIZE 的隐藏值域,通过设置其Value(值)可以限制上载文件的大小。MAX_FILE_SIZE 的值只是对浏览器的一个建议,实际上它可以被简单的绕过。因此不要把对浏览器的限制寄希望于该值。实际上,PHP 设置中的上传文件最大值,是不会失效的。但是最好还是在表单中加上 MAX_FILE_SIZE,因为它可以避免用户在花时间等待上传大文件之后才发现该文件太大了的麻烦。upload.php $f=&$HTTP_POST_FILES['Myfile']; $dest_dir='uploads';//设定上传目录 $dest=$dest_dir.'/'.date("ymd")."_".$f['name'];//设置文件名为日期加上文件名避免重复 $r=move_uploaded_file($f['tmp_name'],$dest); chmod($dest, 0755);//设定上传的文件的属性或者<?($_FILES[MyFile][tmp_name],$_FILES[MyFile][name]);?> 然后再COPY的同时连下数据库把要入的值入库即可 再做一个查询页面读取数据库
未经允许不得转载:山九号 » 文件上传下载系统|用java写一个从linux上传下载的系统