2013-06-10 5 views
0

Я загружаю файл на сервер в PHP. Теперь я хочу переименовать файл в новое имя, но я не смог его сделать. Предлагаемое новое имя файла будет состоять из значения из одного ассоциативного массива и имени переменной. Для достижения этого я сделал следующий код, но не смог получить новый файл. Мой код выглядит следующим образом:Как переименовать загруженный файл в PHP?

$test_pack_id = md5(uniqid($this->hash_secret)); 


    if(!empty($test_pack_id)){ 
        $package_image_file = $form_image_data['test_pack_image']['name']; 

        $nwName = rename($package_image_file,$form_data['test_pack_name'].$test_pack_id); 
        echo $nwName; die; 
       } 

Может ли кто-нибудь помочь мне в том, как переименовать файл в PHP? Заранее спасибо.

+0

[move_uploaded_file] (http://php.net/manual/en/function.move-uploaded-file.php) – Orangepill

+0

Вы переименовываете файл после загрузки или выгрузки изнутри? –

+0

@Orangepill: Теперь я получаю имя файла в переменной $ package_image_file. Я просто хочу переименовать этот файл. Можете ли вы мне помочь в этом? – PHPLover

ответ

0

PHP rename(); функции

rename ("123", "abc"); 
rename ("oldname", "newname"); 
+0

Но это ничего не возвращает. – PHPLover

+0

Возможно, нет ничего, что можно было бы переименовать в первую очередь, что означает, что перед этим возникает проблема, попробуйте (вместо переименования), просто эхо-переменную, чтобы проверить, если это проблема. – Connor

2

BOOL переименование (строка $ Старое_имя, строку $ новое_имя [, ресурс $ контекста])

Примечание: старого названия. Оболочка, используемая в oldname, должна соответствовать оболочке, используемой в newname.

Возвращает TRUE при успешном выполнении или FALSE при сбое.

<?php 
rename("old", "new"); 
?> 

Проверить эту ссылку слишком http://www.codersmount.com/2011/07/smart-way-for-renaming-uploaded-files-using-php/

+1

Ваша ссылка действительно полезна для меня. Но ответ, который вы дали, был просто пастой из руководства PHP, пожалуйста, избегайте делать такие вещи в будущем. – PHPLover

0

PHP rename() возвращает true или false

так и можно проверить, если через if заявление

if(rename()) 
echo "Success"; 
else 
echo "failure"; 
0

вы можете использовать rename, как другие полагают, , ИЛИ просто переименуйте файл, используя время, в которое оно было загружено. Это то, что я обычно делаю. Посмотрите:

//First separate the original file name from its extension 
list($txt, $ext) = explode(".", $name); 
//rename it with its timestamp. 
$actual_image_name = time().substr(str_replace(" ", "_", $txt), 5).".".$ext; 

Надеюсь, это поможет.

1

Вы должны сделать print_r или var_dump на $ form_data, потому что я подозреваю, что данные, передаваемые в 'test_pack_name', являются неправильными и приводят к сбою переименования. Я бы также включил предложение swapnesh поставить условное , если сообщить об успехе или неудаче переименования предоставить дополнительную информацию об отладке.