2017-08-07 5 views
1

私は現在、PHPをにアップロードしていますをアップロードしています。私はインターネットからの助けを借りてプロジェクトを成功させました。アップロード後に元のファイル名を保持する

しかし、アップロード後にFileNameが複雑に変わるという問題がありました。例:5987fff5b3dd83.21913884

アップロード後に元の名前を保持する方法はありますか?現在の位置はLocalhostですが、後で私のウェブサイトにアップロードする必要があります。 upload.php

<?php 
if (isset($_POST['submit'])) { 
$file = $_FILES['file']; 

$fileName = $file['name']; 
$fileTmpName = $file['tmp_name']; 
$fileSize = $file['size']; 
$fileError = $file['error']; 
$fileType = $file['type']; 

$fileExt = explode('.', $fileName); 
$fileActualExt = strtolower(end($fileExt)); 

$allowed = array('jpg', 'jpeg', 'png', 'pdf'); 

if (in_array($fileActualExt, $allowed)) { 
    if ($fileError === 0) { 
     if ($fileSize < 1000000) { 
      $fileNameNew = uniqid('', true).".".$fileActualExt; 
      $fileDestination = 'uploads/'.$fileNameNew; 
      move_uploaded_file($fileTmpName, $fileDestination); 
      echo "OK"; 
      header("Location: ab.html"); 
     } else { 
      echo "Your file is too big!"; 
     } 
    } else { 
     echo "There was an error uploading your file!"; 
    } 
} else { 
    echo "You cannot upload files of this type!"; 
} 
} 

ため

のindex.php

<!DOCTYPE html> 
<html> 
<head> 
<title></title> 
</head> 
<body> 

<form action="upload.php" method="POST" enctype="multipart/form-data"> 
<input type="file" name="file"> 
<button type="submit" name="submit">UPLOAD</button> 
</form> 

</body> 
</html> 

コードのコードは、親切に問題を解決するために可能な方法を提案します。

よろしく

過酷Bansal氏

+2

を行う

$fileNameNew = uniqid('', true).".".$fileActualExt; 

に名前を付けるためにランダムな値を割り当てることです。ファイルのアップロードのトピックに関するPHPマニュアルをお読みください。 http://php.net/manual/en/features.file-upload.php – GordonM

答えて

0

を追加すると、元のファイル名は$ _FILESのスーパーグローバルであり、この

$fileNameNew = $fileName; 
+0

非常にうまくいきました – user8427007

0

コメントコメントするにはどのようにこのライン

$fileNameNew = uniqid('', true).".".$fileActualExt; 

は、新しいファイル名を生成しますuniqid機能を使用している

// $fileNameNew = uniqid('', true).".".$fileActualExt; 

です。

は、あなたがやっていること

$fileNameNew = $fileName; 
関連する問題