【问题标题】:PHP Create Tar File: PharData [PharException] "contents of file could not be written, seek failed"PHP 创建 Tar 文件:PharData [PharException]“文件内容无法写入,查找失败”
【发布时间】:2016-01-14 19:52:48
【问题描述】:

我正在尝试使用 PHP 创建一个 tar 文件,但遇到了问题。

使用 PharData 类,::addFile::buildFromDirectory 都抛出相同的异常:

异常 'PharException' 带有消息 'tar-based phar “C:/Apache24/htdocs/_frames/storage/glacier/archive_cache/9.tar” 无法创建,无法创建文件“MVI_4492.MOV”的内容 写,寻找失败'在 C:/Apache24/htdocs/_frames/storage/glacier/cron/upload_archives.php:212 堆栈跟踪:#0 C:/Apache24/htdocs/_frames/storage/glacier/cron/upload_archives.php(212): PharData->addFile('C://Apache24//htd...', 'MVI_4492.MOV') #1 {main}

想法?

【问题讨论】:

    标签: php tar phar


    【解决方案1】:

    在操作期间,您的磁盘空间不足。之后 - 空间被恢复(因为 tmp 文件被数据填充,然后被清理)。

    如果不是,那么另一个原因是你使用的是32位的php,它不支持大于2GB的文件

    【讨论】:

    • 64 位 PHP。 tmp 空间不足。如果您对如何耗尽 tmp 空间有任何想法,那就太好了。
    • 不要使用 PharData 类....替代?使用原始 tar(.exe),并通过 php exec() 从操作系统运行它。没有 tmp 文件问题,它的运行速度提高了大约 8 倍! (在我的电脑上)
    • 在 Windows 服务器和 CentOS 服务器上都试过了。小于约 10GB 的文件可以工作,但超过 10GB 的文件会耗尽空间并失败。文件大至 200GB+。
    • 我刚刚在Windows 7上测试,gnu4win版本的tar,20GB的tar文件创建没有任何问题...
    猜你喜欢
    • 1970-01-01
    • 2015-12-15
    • 1970-01-01
    • 2012-12-15
    • 2014-11-01
    • 1970-01-01
    • 2017-06-24
    • 2013-10-30
    • 1970-01-01
    相关资源
    最近更新 更多