【问题标题】:Uploading files to different disks/directories on server with PHP使用 PHP 将文件上传到服务器上的不同磁盘/目录
【发布时间】:2019-04-04 04:08:21
【问题描述】:

我有一个有 2 个磁盘的服务器。我想用 PHP 上传文件,并让 PHP 根据磁盘空间或随机选择磁盘上的upload_tmp_dir 目录来上传文件,以减少每个磁盘的 IO 量。

例如:如果同时上传 5 个文件,PHP 选择 disk1 上传 1 和 2,disk2 上传 3、4、5。这可能吗?

据我了解:在上传过程中,文件临时存储在 upload_tmp_dir 目录中。上传后,文件可以使用move_uploaded_file 传输到其他目录。

但我想让 PHP 首先检查两个磁盘的磁盘空间,比较,然后继续将文件上传到所选磁盘 - 或随机选择一个磁盘。那可能吗?我还没有见过这样的 PHP 解决方案。但我想将磁盘 IO 保持在最低限度并尽可能多地利用我的磁盘。

【问题讨论】:

    标签: php upload disk


    【解决方案1】:
    1. 您可以使用disk_free_space 查看可用磁盘空间。
    2. 根据 1) 中的 path 进行比较后,您已经知道哪个磁盘的空间更多
    3. 在此基础上,您可以使用ini_set("upload_tmp_dir", path)来存储tmp文件。
    4. 那么您可以使用move_uploaded_file 来存储文件。

    【讨论】:

    • 谢谢,我会试试的!但是可以在运行时在脚本中设置upload_tmp_dir 吗?因为upload_tmp_dir 处于模式PHP_INI_SYSTEM,只能在php.ini 或httpd.conf 中更改? secure.php.net/manual/en/configuration.changes.modes.php
    • 我试过了:我尝试在运行时设置另一个upload_tmp_dir:ini_set('upload_tmp_dir', $uploads_dir."/tmp");,并检查它是否用sys_get_temp_dir()更改,但没有。 tmp 目录仍然是默认的/tmp
    • 我现在用ini_get检查了upload_tmp_dir,这次它返回了用ini_set设置的值..所以ini_get似乎工作..
    • 我对@9​​87654336@ 不好。 3)你可以试试这个stackoverflow.com/a/5864982@Nemdr
    猜你喜欢
    • 1970-01-01
    • 2011-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多