2015-09-01 3 views
0

Привет, я создаю кодировку для загрузки файла docx и файла pdf. Ниже приведена кодировка.Как загрузить docx, файл pdf с переименованием?

$allowedExts = array("pdf", "docx");//array("mp4", "WebM", "ogg"); 
$extension = end(explode(".", $_FILES["file"]["name"])); 
if (($_FILES["file"]["size"] < 90000000000000000000000000000000000) && in_array($extension, $allowedExts)){ 
    if ($_FILES["file"]["error"] > 0){ 
     echo "Return Code: " . $_FILES["file"]["error"] . "<br />"; 
    }else{ 
     echo "Upload: " . $_FILES["file"]["name"] . "<br />"; 
     echo "Type: " . $_FILES["file"]["type"] . "<br />"; 
     echo "Size: " . ($_FILES["file"]["size"]/1024) . " Kb<br />"; 
     echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />"; 
     if (file_exists("upload/" . $_FILES["file"]["name"])){ 
      echo $_FILES["file"]["name"] . " already exists. "; 
     }else{ 
      move_uploaded_file($_FILES["file"]["tmp_name"], 
      "docmument_upload/" . $_FILES["file"]["name"]); 
      echo "Stored in: " . "docmument_upload/" . $_FILES["file"]["name"]; 
     } 
    } 

Но я хочу переименовать файл перед загрузкой в ​​папку. Как я могу это сделать?

+0

кто 'вы'? вы как программист в коде или вы как пользователь, загружающий файл? всегда или только при обнаружении дубликата? что-нибудь происходит, если новое имя существует, но старого нет? – Paolo

ответ

1

Прежде всего, вы получите расширение файла с помощью

$temp = explode(".", $_FILES["file"]["name"]); 
$extension= end($temp);// file extension 

Переименовать имя файла в качестве

$new_name=time().".".$extension;// new name with current timestamp 
move_uploaded_file($_FILES["file"]["tmp_name"],"docmument_upload/" . $new_name); 
0

Просто измените строку кода

От

move_uploaded_file($_FILES["file"]["tmp_name"], 
      "docmument_upload/" . $_FILES["file"]["name"]); 

К

$newFileName="newName".".".$extension; 
move_uploaded_file($_FILES["file"]["tmp_name"], 
      "docmument_upload/" . $newFileName); 

$ newFileName - это переменная, в которой вы можете создать новое имя файла. Всегда обращайте внимание на проблему с перезаписи, поэтому попробуйте сделать имя файла уникальным.

$ extension - это переменная, которую вы используете для проверки.

0

Это даст желаемых результатов для вас:

$ext = end((explode(".", $_FILES["file"]["name"]))); 
$filename = time(). rand(). "." . $ext; 
move_uploaded_file($_FILES["file"]["tmp_name"], "docmument_upload/" . $filename); 
Смежные вопросы