1

想知道执行以下操作的最佳方法:

我正在将文件上传到我的服务器,但不想将其保留在我的服务器上。该文件是一个视频文件,由想要在网站上发布视频供朋友观看的用户上传。

我使用NeatUpload作为我的上传控件,因为我实际上不允许使用 flash,尽管如果使用 flash 的论点大于不使用它的论点,那么我可以说服负责人这是一个可行的选择。

因此,一旦文件在我的服务器上的流中,我就会通过 ftp 将其上传到将播放它的流服务器。

如何在不阻止用户的情况下将其发送到 ftp?我已经阻止他们把它送到我的服务器上,我真的不想把等待时间加倍。

我已经编写了执行上传和 ftp 的代码,我只是在寻找正确的方法来执行 ftp 而不会阻止用户。

4

2 回答 2

0

就个人而言,我正在使用 ASP.NET、数据库/文件系统文件夹和作为计划任务运行的控制台应用程序的组合。

当用户上传时,我将文件放在一个特殊的“拾取”文件夹中,可选择生成一个数据库条目(如果需要传递更多信息而不仅仅是文件)。

然后 ASP.NET 部分就完成了。

作为计划任务运行的控制台应用程序(例如每 5 分钟)迭代所有 DB 和/或文件系统条目,通过通过 FTP 将其上传到您的其他服务器并在处理完文件和 DB 条目后删除文件和 DB 条目来处理每个条目。

(可能这个解决方案在技术方面被批评为“穷人的解决方案”(例如,不使用 Windows 服务),但在我的项目中,它总是运行良好。)

于 2011-06-21T10:51:08.730 回答
0

这是您可以执行螺纹位的方法:

Stream stream = new MemoryStream();                
inputFileId.FileContent.CopyTo(stream);

ThreadPool.QueueUserWorkItem(delegate { SendViaFTP(inputFileId.FileName, stream); });
于 2011-06-21T11:22:28.210 回答