2013-12-07 4 views
0

У меня есть этот код для загрузки файлов jpg. Мне нужно переименовать файл, который кто-то загружает в newtexture.jpg '.Как изменить имя загруженного файла в php?

<?php 
$demo_mode = false; 
$upload_dir = 'uploads/'; 
$allowed_ext = array('jpg','jpeg'); 

if(strtolower($_SERVER['REQUEST_METHOD']) != 'post'){ 
    exit_status('Error! Wrong HTTP method!'); 
} 

if(array_key_exists('pic',$_FILES) && $_FILES['pic']['error'] == 0){ 
    $pic = $_FILES['pic']; 
    if(!in_array(get_extension($pic['name']),$allowed_ext)){ 
     exit_status('Only '.implode(',',$allowed_ext).' files are allowed!'); 
    } 
    if($demo_mode){ 
     $line = implode('  ', array(date('r'), $_SERVER['REMOTE_ADDR'], $pic['size'], $pic['name'])); 
     file_put_contents('log.txt', $line.PHP_EOL, FILE_APPEND); 
     exit_status('Uploads are ignored in demo mode.'); 
    } 
    if(move_uploaded_file($pic['tmp_name'], $upload_dir.$pic['name'])){ 
     exit_status('File was uploaded successfuly!'); 
    } 
} 
exit_status('Something went wrong with your upload!'); 

function exit_status($str){ 
    echo json_encode(array('status'=>$str)); 
    exit; 
} 

function get_extension($file_name){ 
    $ext = explode('.', $file_name); 
    $ext = array_pop($ext); 
    return strtolower($ext); 
} 
?> 

PS. В нем говорится, что он в основном кодируется, чтобы добавить более подробную информацию? Что еще ... Я студент, и мне это нужно для моего проекта Capstone, и это чрезвычайная ситуация ...

ответ

4

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

if(move_uploaded_file($pic['tmp_name'], $upload_dir.'newtexture.jpg')){ 
+1

Спасибо! Мне жаль, что у меня не было более 15 репутации :) –

+0

@FragkiskosMysirlakis на самом деле, вы сейчас :) – Popnoodles

+0

Да, ха-ха, у меня теперь есть ... –

1

Передайте ваше имя файла в качестве второго аргумента в move_uploaded_file()

$fileName = 'newtexture.jpg'; 

if(move_uploaded_file($pic['tmp_name'], $upload_dir.$fileName)){ 
1

move_uploaded_file принимает два аргумента:

  1. Имя временного файла для перемещения.
  2. Новый постоянный путь к файлу.
bool move_uploaded_file (string $filename , string $destination) 

Таким образом, Вы должны будете указать второй параметр (путь + имя нового файла). .

move_uploaded_file($pic['tmp_name'], $upload_dir.'newtexture.jpg') 
Смежные вопросы