PHP 5.3.3重命名功能因“协议错误”而失败

时间:2018-09-06 18:03:41

标签: php virtualbox rename php-5.3

我试图重命名/移动目录中的文件,并且给文件起了新名称,也给了新目录。以下是此类代码的片段:

$currentFilePath = FCPATH . $forms->form_filepath;
$current_name    = $stageDir . '/' . $forms->FormName . '.pdf';
$newname         = file_exists($current_name) ? uniqid('', true) . 'pdf' : $current_name;

// $currentFilePath = "/var/www/html/epa_editor/public/epa_forms/archive/Clone_16621_SamplePDFFile_5mb.pdf"
// $newname = "/var/www/html/epa_editor/public/epa_forms/stage/testing (Clone of Form #: 15615).pdf"

try {
    $success = rename($currentFilePath, $newname);
} catch (Exception $e) {
    $error = $e->getMessage();
    log_message('error', print_r('An error has occurred: %s', $e->getMessage()));
}

由于某些原因,rename()返回如下错误:

  

协议错误var / www / html / editor / application / models / forms_model.php 455

第455行是$success = rename($currentFilePath, $newname);,我不确定这是什么意思以及如何解决它,因此非常欢迎提供帮助。

我正在调试此代码,甚至无法进入catch并查看确切的错误是什么。

rename文档中,我找不到任何有用的东西,在Google和类似的post中,我也发现对于推荐功能完全相同的目录之间的移动文件没有帮助。

我必须在这里添加的一件事是这是一台运行CentOS 6.10和PHP 5.3.3的VM,但是文件位于Windows 10 Enterprise主机中并与该VM共享,不确定该问题是否出自此主机

更新: 较深的Google搜索“暗网”将我引向this result,这似乎是VirtualBox本身的一个问题,即使我使用的是最新版本也是如此。那张票已经关闭并且不确定是否标为“过时”,但是我将为VBox团队开放一个新票,以便他们可以对此进行研究。

更新2: 我现在尝试按照@lxg的建议直接在VM中执行命令mv,这是结果:

$ mv /var/www/html/epa_editor/public/epa_forms/archive/Clone_16621_SamplePDFFile_5mb.pdf "/var/www/html/epa _editor/public/epa_forms/stage/testing (Clone of Form #: 15615).pdf"
mv: cannot move `/var/www/html/epa_editor/public/epa_forms/archive/Clone_16621_SamplePDFFile_5mb.pdf' to `/var/www/html/epa_editor/public/epa_forms/stage/testing (Clone of Form #: 15615).pdf': Protocol error

显然,当主机为“ Windows”时,VBox出现共享文件夹问题,因此我将同时为他们打开一张票证,并让他们知道两年后问题仍未解决。

更新3: 如果有人遇到同样的问题,我已经为VBox团队开放了ticket

0 个答案:

没有答案