0

我需要自动化和简化员工向客户发送大文件的方式。

当前用例:

员工使用 scp 将大 (2GB+) 文件发送到我们的 LAMP 服务器。
员工 ssh 到 Web 服务器
员工将文件移动到 Web 目录内的新文件夹中
员工在文件夹上运行 chmod
员工使用客户名称和随机密码创建 .htaccess 文件
员工计算出新创建文件夹的公共 URL 并通过电子邮件向客户发送链接。

我已经通过 bash 脚本大大简化了这个过程,但是对于员工来说仍然太耗时了。(超过 10 分钟!)我需要制作一个简单的 html5 网页,员工可以将文件“拖放”到其中,然后接收他们可以发送给客户的公共链接。

只有内部员工才能上传文件。员工和客户将能够下载这些文件。

有关我正在尝试实施的示例,请参阅https://letscrate.com/ 。

不幸的是,由于公司政策,letscrate.com、dropbox 和 google drive 不能用于共享大文件。

使用 HTML5 和这个例子:http ://html5demos.com/dnd-upload 我能够将大文件上传到我们的内部网络服务器。那就是我卡住的地方。

我的问题是:

在服务器上拥有大文件后,如何将文件移动到 web 目录并设置 .htaccess 文件?
我正在考虑运行一个 cron 作业以定期将文件移动到 Web 根目录并配置 .htaccess 文件,但我想这样做而不在服务器上运行任何其他服务/cron-tasks。

这可以通过 php、html5、javascript 来完成吗?

所有员工都使用 firefox 或 chrome(没有 ie)。

4

1 回答 1

5

我的第一反应是这样的:

  • 做一个管理员,让用户上传文件(普通文件上传、flash 文件上传或 HTML5,没关系)。

  • 然后该文件存储在 www-root 之外(不能直接访问该文件)。

  • 让用户为这个文件添加一个用户名/密码,并为该文件生成一个唯一的 ID/Key。(数据库列:id、文件名、用户名、密码、url_key)。

  • 向用户展示他们可以发送给客户端的完整 url。

  • 当客户加载:mydomain.com/file/the_generated_url_key 时,您会从 url 中获取密钥(如果存在),并提示您对数据库进行身份验证的登录框。

然后你只需做一个:

echo file_get_contents(path_to_the_real_file);

当然使用正确的标题,具体取决于文件类型。

就像评论说的那样。不要让 PHP 乱用 .htaccess,或者让用户直接使用 SFTP 到服务器。

如果您不希望它们通过浏览器上传,那么您也不能真正使用 HTML5,因为它仍然是浏览器上传。让他们使用 FTP(更容易锁定他们有权访问的文件夹)并让他们从管理员那里选择上传的文件并设置用户名/密码并生成 URL。

于 2013-06-05T23:37:08.533 回答