2016-10-07 8 views
0

こんにちは私は次のコードを持っています。 tempnam機能を使用して、一意の名前の画像をアップロードしようとしています。PHP上で一意の名前の画像をアップロードするには?

$upfile = tempnam('client_images', ''); 
unlink($upfile); 
//move_uploaded_file($_FILES['userfile']['tmp_name'], $upfile); 

if($_FILES["userfile"]["type"] != "image/gif" && $_FILES["userfile"]["type"] != "image/pjpeg" && $_FILES["userfile"]["type"] != "image/png" && $_FILES["userfile"]["type"] != "image/jpeg") 
{ 
    echo "ERROR: You may only upload .jpg or .gif or .png files"; 
} 
else 
{ 
    if(!move_uploaded_file($_FILES["userfile"]["tmp_name"],$upfile)) 
    { 
    echo "ERROR: Could Not Move File into Directory"; 
    } 
    else 
    { 
    echo "Temporary File Name: " .$_FILES["userfile"]["tmp_name"]."<br />"; 
    echo "File Name: " .$_FILES["userfile"]["name"]."<br />"; 
    echo "File Size: " .$_FILES["userfile"]["size"]."<br />"; 
    echo "File Type: " .$_FILES["userfile"]["type"]."<br />"; 
    } 
    } 
    ?> 

ただし、何らかの理由で私のclient_imagesフォルダにこれらの画像が表示されません。

出力は次のようになります。

Temporary File Name: C:\Windows\Temp\phpA9F3.tmp 
File Name: client.png 

はなぜ温度が.tmpないとして、それを保存している私はこれで間違ってやって何ができるか.png?

+0

あなたが本当に '/ client_images'と呼ばれるサーバー上の_root_フォルダを持っていると

if(!move_uploaded_file($_FILES["userfile"]["tmp_name"], $upfile)) { //take care of error } 

?私は推測していない。 – jszobody

+0

あなたは正しいですが、まだ.tmpとして保存されていますが、どうすればjpgとして保存できますか? –

+0

私はちょうど/を削除しました。そして今、それは正しいフォルダに保存されます! :)しかし、画像ファイルではありません –

答えて

1

置き換え

$nameyouwant = "sample"; //we'll use the extension from the source filename 
$temp = explode(".", $_FILES["userfile"]["name"]); 
$newfilename = $nameyouwant. '.' . end($temp); //add file extension 
if(!move_uploaded_file($_FILES["userfile"]["tmp_name"],$upfile . $newfilename)) { 
    //take care of error 
} 
else{ 
    //save success 
} 
関連する問題