2015-03-16 5 views
-1

Я хочу переименовать загруженные файлы. Имена должны быть случайным уникальным номером.PHP переименовать загруженный файл (изображение)

Вот мой сценарий загрузки:

<?php 
 
    if(isset($_POST["submit"])){ 
 
    $target_dir = "uploads/"; 
 
    $target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]); 
 
    $imageFileType = pathinfo($target_file,PATHINFO_EXTENSION); 
 
    $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]); 
 

 
     if(!($check == false)){ 
 
      if(file_exists($target_file)){ 
 
       $meldung = "Der Bildname exestiert bereits."; 
 
      } 
 
      if($_FILES["fileToUpload"]["size"] > 5242880){ /*Bytes*/ 
 
       $meldung = $meldung . "Das Bild ist zu groß."; 
 
      } 
 
      if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" && $imageFileType != "JPG" && $imageFileType != "PNG" && $imageFileType != "JPEG") { 
 
       $meldung = $meldung . "Ungültiges Format."; 
 
      } 
 

 
      if(!(empty($meldung))){ 
 
       $meldung = $meldung . "Die Datei wurde nicht hochgeladen."; 
 
      } 
 
      else{ 
 
       if(move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) { 
 
        $picturename = $_FILES["fileToUpload"]["name"]; 
 
        $pictureheightwidth = $check[3]; 
 
        $picturepath = $target_file; 
 
     
 
        $eintrag = "INSERT INTO bilder (bild_name, bild_werte, bild_pfad) VALUES ('$picturename', '$pictureheightwidth', '$picturepath')"; 
 
        $eintragen = mysqli_query($db, $eintrag);  
 
     
 
        $meldung = "Das Bild wurde erfolgreich hochgeladen"; 
 
       } 
 
       else{ 
 
        $meldung = $meldung . "Fehler beim hochladen des Bildes."; 
 
       } 
 
      } 
 
     } 
 
     else{ 
 
      echo "Die Datei ist kein Bild."; 
 
     } 
 
    } 
 
    echo $meldung; 
 
?> 
 

 
<form action="index.php?content=upload" method="post" enctype="multipart/form-data"> 
 
    <input type="file" name="fileToUpload" id="fileToUpload"> 
 
    <br> 
 
    <input type="submit" value="Hochladen" class="button-submit" name="submit"> 
 
</form>

........................... .................................................. .................................................. .................................................. ........................................

+0

'$ picturename = rand();' –

+0

Моя вина. Я хочу изменить имя реальной картины. В папке «Загрузить», потому что я получаю каждый раз ошибки, потому что один раз в папке. Не переменная моя ошибка извините – Skeptar

+0

Многие способы сделать это. Посмотрите на ** Связанные ** справа >>> –

ответ

0

Вы ищете uniqid() функция:

$pictureame = uniqid(rand(), true); 

Он генерирует такой «случайный» идентификатор, но в то же время также заботится о том, чтобы это уникальное имя еще не использовалось другим файлом. Без этого вы рискуете столкновениями. Не очень вероятно, на первый взгляд, но это просто вопрос о масштабировании :-)

Посмотрите на документацию: http://php.net/manual/en/function.uniqid.php

+0

Моя вина. Я хочу изменить имя реальной картины. В папке «Загрузить», потому что я получаю каждый раз ошибки, потому что один раз в папке. Не переменная моя ошибка извините – Skeptar

+0

Я не вижу здесь проблемы: вы используете сгенерированное имя файла окончательное имя, под которым вы, наконец, сохраняете изображение с помощью функции 'move_uploaded_file()'. – arkascha

+0

Спасибо за answe, но 'if (file_exists ($ target_file)) { $ meldung =" Der Bildname exestiert bereits. "; } 'здесь я получаю сообщение об ошибке – Skeptar