我試圖在上傳後重命名圖像。 我希望它是一個獨特的名字。上傳後唯一的文件名
我有這個類(在互聯網上找到):
我試圖編輯這樣的文件:
$upload_image = $target_path.basename($fileName);
到
$upload_image = $target_path.basename(uniqid($fileName, rand()));
但它給我只是一個文件,沒有擴展名..
我試圖在上傳後重命名圖像。 我希望它是一個獨特的名字。上傳後唯一的文件名
我有這個類(在互聯網上找到):
我試圖編輯這樣的文件:
$upload_image = $target_path.basename($fileName);
到
$upload_image = $target_path.basename(uniqid($fileName, rand()));
但它給我只是一個文件,沒有擴展名..
還應該發生什麼? uniqid
將產生類似:
php > echo uniqid('kittens.jpg', rand());
kittens.jpg57b72004c1a470.87520799
php > echo basename(uniqid('kittens.jpg', rand()));
kittens.jpg57b7201cdce2e9.40812361
你不會得到擴展,因爲你打開文件的擴展名到文件名的「中間」的一部分。
也許這樣的事情會更好地工作:
$info = pathinfo($file);
$file = $path . $info['filename'] . uniqid() . $info['extension'];
謝謝,這是工作。我只需要添加一個「。」在uniqid()之後。 – tweetok
在您提供有一個名爲$file_ext
包含正是你需要的變量庫中的第26行。只要將其Concat的到$upload_image
所以線32變爲:
$upload_image = $target_path.basename(uniqid($fileName, rand())).$file_ext;
即使如說here,我會得到這樣的擴展: $path = $_FILES['image']['name']; $file_ext = pathinfo($path, PATHINFO_EXTENSION);
因爲如果文件名是,對於例如,test.tar.gz
它只需要.gz
作爲擴展名。
如果你想使用這種方法,你可以用上面的代碼替換第22-24行。
而且?聽起來像是對我有用? –
是的,它工作。但它只是給我一個沒有擴展名的文件。我如何檢查圖像的擴展名? – tweetok