簡體   English   中英

在服務器PHP中存儲之前重命名文件

[英]Rename File before Storing in Server PHP

我需要知道如何重命名文件的代碼,然后才能使用php腳本將文件上傳到我的服務器。我將發布我的php代碼。

我需要它,因為我正在從手機上載圖像,但我不希望它被覆蓋。

我能做到嗎?

<?php

$file_path = "uploads/";

$file_path = $file_path . basename( $_FILES['uploaded_file']['name']);
if(move_uploaded_file($_FILES['uploaded_file']['tmp_name'], $file_path)) {
    echo "success";
} else{
    echo "fail";
}
?>

要在Android中重命名文件,您可以執行以下操作:

String file_path = <file path off your existing file you want to rename>
File from = new File(file_path,"from.txt");
File to = new File(file_path,"to.txt");
from.renameTo(to);

此代碼對存儲在內部或外部存儲中的文件均適用。 僅用於寫入外部存儲,請記住,您需要將android.permission.WRITE_EXTERNAL_STORAGE添加到您的Android清單中。

像下面這樣寫你的代碼。

    $filename = $_FILES['upload_file']['name'];
    $newname = 'alteredtext'.$filename; // you can also generate random number and concat on start.
    $tmp_path = $_FILES['upload_file']['tmp_name'];
    if(move_uploaded_file($mp_path, $newname)) {
        echo "success";
    } else{
       echo "fail";
    }

移動文件時,無需使用$ _FILES數組中傳遞的名稱。 您可以創建所需的任何名稱(假設路徑有效)並將其作為move_uploaded_file的第二個參數傳遞。 如果要使用半隨機名稱,則可以生成一個隨機數,然后對其進行哈希處理或創建文件名。

如果要首先檢查文件是否存在,然后將其重命名為具有數字后綴,則可以執行以下操作:

<?php

$base_path = "uploads/";

$file_path = $base_path . basename( $_FILES['uploaded_file']['name']);
if(file_exists($file_path)) {
    $ctr = 0;
    do { // increment an index to append to the filepath
        $ctr++;
        $file_path = $base_path . basename( $_FILES['uploaded_file']['name']) . "_$ctr";
    } while(file_exists($file_path));
}

if(move_uploaded_file($_FILES['uploaded_file']['tmp_name'], $file_path)) {
    echo "success";
} else{
    echo "fail";
}
?> 

上面的代碼段將不斷遞增,直到找到一個不存在的文件名。 當然,您希望添加一些邊界和錯誤檢查,盡管以上代碼片段演示了該概念,但它尚不完全可以投入生產。

暫無
暫無

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

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