想知道执行以下操作的最佳方法:
我正在将文件上传到我的服务器,但不想将其保存在我的服务器上。 该文件是一个视频文件,由想要在网站上发布视频供其朋友观看的用户上传。
我使用NeatUpload作为我的上传控件,因为我真的不允许使用flash,但如果使用flash的参数大于不使用flash的参数那么我可以说服那些负责人这是一个可行的选择。
因此,一旦文件在我的服务器上的流中,我就会通过ftp将其上传到将要播放的流式服务器。
如何在不阻止用户的情况下将此设置为ftp?我已经把它们拿到了我的服务器上,我真的不想把等待时间加倍。
我已经编写了代码来执行上传和ftp,我只是在寻找正确的方法来执行ftp而不需要用户。
答案 0 :(得分:0)
就我个人而言,我正在使用ASP.NET,数据库/文件系统文件夹和作为计划任务运行的控制台应用程序的组合。
当用户上传时,我将文件放在一个特殊的“提取”文件夹中,可选择生成数据库条目(如果需要传递的信息不仅仅是文件)。
然后完成了ASP.NET部分。
作为计划任务运行的控制台应用程序(例如,持续5分钟)迭代所有数据库和/或文件系统条目,通过FTP将其上传到您的其他服务器并在文件和数据库条目被删除后处理每个条目处理。
(可能这个解决方案在技术方面被批评为“穷人的解决方案”(例如,不使用Windows服务),但在我的项目中,这总是很好用。)
答案 1 :(得分:0)
这是你可以做的线程位:
Stream stream = new MemoryStream();
inputFileId.FileContent.CopyTo(stream);
ThreadPool.QueueUserWorkItem(delegate { SendViaFTP(inputFileId.FileName, stream); });