2012-01-10 15 views
3

PHP uniqid関数を使用して名前を置き換えるために、ランダムに生成された一意のIDを受け入れるように私のコードを変更したいと考えています。私は成功しないでいくつかの方法を試してみました。ファイル名をPHPのuniqidに変更してください。

move_uploaded_file($_FILES["file"]["tmp_name"], 
"upload/" . $_FILES["file"]["name"]); 
$ipath = "upload/"; 
$ipath .= $_FILES["file"]["name"]; 

どのように私がこれを達成できるか知っていますか?

編集:uniqid関数をどこに置いて、ファイルがuniqid.extensionと共に私のサーバ上のフォルダに保存されるかを尋ねています。

+0

あなたの質問です一意のファイル名を生成する方法や、 'move_uploaded_file'コールにどこに置くかについては? – bfavaretto

+0

私はuniqid関数を置く場所を尋ねています。 – user981053

+0

さて、@Connunは答えを – bfavaretto

答えて

7
move_uploaded_file($_FILES["file"]["tmp_name"], 
    "upload/" . uniqid()); 

か、あなたはファイル拡張子維持したい場合:

$fileInfo = pathinfo($_FILES["file"]["name"]); 

move_uploaded_file($_FILES["file"]["tmp_name"], 
    "upload/" . uniqid() . '.' . $fileInfo['extension']); 

\\編集:$ IPATH変数を使用するが...

$fileInfo = pathinfo($_FILES["file"]["name"]); 
$ipath = "upload/" . uniqid() . '.' . $fileInfo['extension']; 
move_uploaded_file($_FILES["file"]["tmp_name"], $ipath); 
+0

ファイル拡張子を取得するために一時ファイル名の代わりに実際のファイル名を使用するように編集しました – Connum

+0

ありがとうございました。 – user981053

+0

ipathを新しいファイル名と同じに設定する方法を知っていますか? – user981053

1
$newName = md5_file($ipath); 

ファイルコンテンツのmd5を生成するには、かなりユニークである必要があります。

-2
$aaa = uniqid(); 
$Image_New_Name = $aaa."_".basename($_FILES["fileToUpload"]["name"]); 
$target_dir = "upload/".$Image_New_Name; 

if(isset($_POST['submit'])) { 

    //$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]); 

    if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_dir)) { 
     echo "The file ". basename($_FILES["fileToUpload"]["name"]) ." has been uploaded."; 
     echo "<br/>"; 
    } 

    $id  = $_POST['id']; 
    $fullname = $_POST['fullname']; 
    $password = $_POST['password']; 
    $email = $_POST['email']; 
    $gender = $_POST['gender']; 
    $about_me = $_POST['about_me']; 
    $state = $_POST['state']; 
    $country = $_POST['country']; 


    if($_FILES["fileToUpload"]["name"] != "") { 
     $image = $_FILES["fileToUpload"]["name"]; 
    } else { 
     $image='BlankFaceGraphic.jpg'; 
    } 

    $sql="insert into register(id,fullname,password,email,gender,about_me,state,country,image) 
         values 
    ('$id','$fullname','$password','$email','$gender','$about_me','$state','$country','$Image_New_Name')"; 
関連する問題