簡體   English   中英

PHP-move_uploaded_file無法復制同一文件夾中的文件

[英]PHP - move_uploaded_file not working to copy file in same folder

重寫照片文件時遇到麻煩。 我需要將文件名重寫為隨機字符串。 文件上傳正常-我似乎無法讓它復制文件並將文件名重寫為隨機字符串。 該文件將保留在目錄中。

該功能運行正常,我可以重寫數據庫中的文件名,但不會重寫文件夾中的實際文件。 文件夾權限為rwxr-xr-x(755)。

有什么想法嗎?

function AfterUpdate(){
    $file = $this->file_attachment;
    $path_parts = pathinfo($file);
    $newFilename = $path_parts['dirname'] . "/" . uniqid() . "." . $path_parts['extension'];

    $file_src = $_SERVER['DOCUMENT_ROOT'] . $file; 
    $newfile_src = $_SERVER['DOCUMENT_ROOT'] . $newFilename; 
    if (move_uploaded_file($file_src, $newfile_src)){
        $this->file_attachment = $newFilename;
    }
}

$newFilename包含一個路徑位置,我通過查看$path_parts['dirname'] . "/" . uniqid() . "." . $path_parts['extension'];猜測$path_parts['dirname'] . "/" . uniqid() . "." . $path_parts['extension']; $path_parts['dirname'] . "/" . uniqid() . "." . $path_parts['extension'];

$newFilename應該只是帶有擴展名的新文件名。 move_uploaded_file只會將文件從一個文件夾移動到另一個或相同的文件夾(已存在)。 但是不會為您創建文件夾。

簡單修復。 更換move_uploaded_filerename 該文件將不會被移動,只是被重命名。

    $file = $this->file_attachment;
    $path_parts = pathinfo($file);
    $newFilename = $path_parts['dirname'] . "/" . uniqid() . "." . $path_parts['extension'];

    $file_src = $_SERVER['DOCUMENT_ROOT'] . "/" . $file; 
    $newfile_src = $_SERVER['DOCUMENT_ROOT'] . "/" . $newFilename; 
    if (rename($file_src, $newfile_src)){
        $this->file_attachment = $newFilename;
    }

暫無
暫無

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

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