簡體   English   中英

如何在php中重命名文件?

[英]How to rename a file in php?

我正在嘗試重命名該文件(如果存在),該文件將被成功移動,但是新文件名將類似於0。僅當我手動將.png添加到名稱中時,該文件才會顯示。 我無法讓php正確地重命名文件。

我在堆棧溢出時嘗試了許多建議的方法,但是該文件將不會被重命名為0。

讓我知道我的代碼有什么問題將不勝感激,請不要回信我必須先做研究然后再在這里寫,就像我已經做過的一樣,但是我沒有運氣自己弄清楚。

的PHP

$i = 0;
$extension = pathinfo($name, PATHINFO_EXTENSION);
$actual_name = pathinfo($name,PATHINFO_FILENAME);
$original_name = $actual_name;

while(file_exists('../cutomeruploads/'.$actual_name.".".$extension))
{           
$actual_name = (string)$original_name;
$actual_name = $actual_name.(string)$i;
$name = $actual_name.".".$extension;
$i++;
}


if(move_uploaded_file($_FILES['upl']['tmp_name'], '../cutomeruploads/'.$name)){
    $picname = $_FILES['upl']['name'];

    echo '{"status":"success"}';
    exit;
  }

您是否嘗試過php的重命名功能?

rename("The existing file name", "the new name");

在php中重命名文件非常容易。

rename("oldfile.ext","newname.ext");

有關更多信息,請參見: http : //us3.php.net/rename

試試這個。

/*
 * $dir - Directory path to check where the file is exist 
 * $filename - contains only name of the file
 * 
 */
public static function getFileName($dir, $filename) {

    // If name contains any white space replace with '-'
    $filename = str_replace(" ", "-", $filename);

    $filePath = $dir . $filename;

    $fileInfo = pathinfo($filePath);
    $i = 0;
    $flag = false;

    while(file_exists($filePath)) {
        $filePath = $dir . $fileInfo['filename'] . "_" . $i . "." . $fileInfo['extension'];
        $i++;
        $flag = true;
    }
    if($flag === TRUE)
        return $fileInfo['filename'] . "_" . $i . "." . $fileInfo['extension'];
    else
        return $fileInfo['filename'] . "." . $fileInfo['extension'];

}

如果已經存在,它將返回新的filename

例如, image.jpg已經存在,它將自動添加image_1.jpgimage_2.jpg等。

這些更改將文件重命名為xx1.ext xx2.ext

注意:xx = $ orDi

$actual_name = pathinfo($_FILES['upl']['name'], PATHINFO_FILENAME);
$extension = pathinfo($_FILES['upl']['name'], PATHINFO_EXTENSION);
while(file_exists('../cutomeruploads/'.$actual_name.".".$extension))
{ 
 $i++;          
$actual_name = (string)$orDi.(string)$i;
}

if(move_uploaded_file($_FILES['upl']['tmp_name'], '../cutomeruploads/'.$actual_name.".".$extension)){
    $picname = $actual_name.".".$extension;

暫無
暫無

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

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