【问题标题】:use html 5 or php to manipulate files on server使用 html 5 或 php 来操作服务器上的文件
【发布时间】:2013-06-01 19:55:33
【问题描述】:

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

当前用例:

员工使用 scp 将大 (2GB+) 文件发送到我们的 LAMP 服务器。
员工 ssh 进入网络服务器
员工将文件移动到 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)。

【问题讨论】:

  • The current use case -> 疯了!让 php 访问.htaccess 文件也很疯狂!该死!抱歉,-1
  • 将所有文件放在一个目录中,在 web 根目录之外,将文件名记录到用户,用户已登录,文件通过 php 提供
  • 我认为浏览器上传不适合 2G+ 文件。在那个站点,你最好在你的机器上安装一些软件来可靠地到达那里——比如 rsync。您不必使用 .htaccess 作为密码,也可以通过 PHP 来完成。

标签: php javascript html tomcat lamp


【解决方案1】:

我的第一反应是这样的:

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

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

  • 让用户为此文件添加用户名/密码,并为该文件生成唯一的 ID/密钥。 (数据库列: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。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-30
    • 1970-01-01
    • 1970-01-01
    • 2016-03-30
    • 2020-10-11
    • 2019-07-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多