簡體   English   中英

即使具有777的權限,PHP復制也不會復制

[英]PHP copy does not copy even with permissions at 777

我有一些php文件,需要一個zip文件,將其解壓縮到../images/galleries/foldername/zipfilename中,現在我正嘗試將提取到某個級別的文件放回foldername文件夾中,我正在更改權限兩個文件夾和每個提取的文件,文件仍然不會復制:(

即使打開了錯誤,我也沒有任何錯誤。

$zip = new ZipArchive();
if ($zip->open($path) === true) {
    for($i = 0; $i < $zip->numFiles; $i++) {
        $zip->extractTo('../images/galleries/' . $galleryName, array($zip->getNameIndex($i)));
    }
    $zip->close();
    chmod('../images/galleries/' . $galleryName . '/' . $name[0], 0777);
    chmod('../images/galleries/' . $galleryName, 0777);
    foreach(glob('../images/galleries/' . $galleryName . '/' . $name[0] . '/*') as $image){
        chmod($image, 0777);
        copy($image, '../images/galleries/' . $galleryName . '/');
    }
}

怎么了? 截至目前,已上傳zip文件,並將文件提取到foldername中,並使用該文件夾中的項目創建了另一個文件夾,我確實需要在foldername中獲得這些項目。

我通過error_reporting(E_ALL);打開我的php錯誤error_reporting(E_ALL);

並將權限更改為0777

或者,如果有人知道使用extractTo更好的方法,以便圖像位於文件夾名而不是zipfilename中

這條線似乎是錯誤的

copy($image, '../images/galleries/' . $galleryName . '/');

copy()需要目的地文件名,請參考相關PHP文檔第一個注釋

要獲取文件名,您可以執行以下操作

$filename = end(explode('/', $image));

或者,您可以生成一個具有相同擴展名的新擴展名,也可以使用上述兩種方法獲得該擴展名。

此外,如果您只想移動圖像而不需要保留兩個副本,那么您可能想看看doc上提到的rename()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM