2012-01-17 3 views
0

イメージをアップロードしてから2つの異なるイメージにサイズ変更するスクリプトがあります.1つは540ピクセル幅のイメージで、もう1つは154ピクセルの幅のイメージです。ファイルの名前を変更するまで、スクリプトはうまく動いています!ファイルのアップロードrename rand.ext

ファイルの名前を、乱数に続けて元の拡張子を付けて完全に変更したいと考えています。

私は乱数の後にaを付ける。変数$ ran2と変数$ extの元のファイル拡張子 - 私はとにかく持っていると信じています!

スクリプトの最後に名前を変更したいときまで機能していました。

私は、この部分が間違っていると信じています:< - 私は変数でファイル拡張子を持っていません!

$filename = "uploads/original/". $ran2.$ext; 
$filename1 = "uploads/thumbs/". $ran2.$ext; 

しかし、私はそれを動作させるためにどのように変更するかという霧のようなアイデアを持っています!

<?php 
error_reporting(0); 

$change=""; 
$abc=""; 


define ("MAX_SIZE","800"); 

$ran = rand() ; 
$ran2 = $ran."."; 

function getExtension($str) { 
     $i = strrpos($str,"."); 
     if (!$i) { return ""; } 
     $l = strlen($str) - $i; 
     $ext = substr($str,$i+1,$l); 
     return $ext; 
} 

$errors=0; 

if($_SERVER["REQUEST_METHOD"] == "POST") 
{ 
    $image =$_FILES["file"]["name"]; 
    $uploadedfile = $_FILES['file']['tmp_name']; 


    if ($image) 
    { 

     $filename = stripslashes($_FILES['file']['name']); 

     $extension = getExtension($filename); 
     $extension = strtolower($extension); 


if (($extension != "jpg") && ($extension != "jpeg") && ($extension != "png") && ($extension != "gif")) 
     { 

      echo 'Unknown Image extension'; 
      $errors=1; 
     } 
     else 
     { 

$size=filesize($_FILES['file']['tmp_name']); 


if ($size > MAX_SIZE*1024) 
{ 
    echo 'You have exceeded the size limit!'; 
    $errors=1; 
} 


if($extension=="jpg" || $extension=="jpeg") 
{ 
$uploadedfile = $_FILES['file']['tmp_name']; 
$src = imagecreatefromjpeg($uploadedfile); 

} 
else if($extension=="png") 
{ 
$uploadedfile = $_FILES['file']['tmp_name']; 
$src = imagecreatefrompng($uploadedfile); 

} 
else 
{ 
$src = imagecreatefromgif($uploadedfile); 
} 

echo $scr; 

list($width,$height)=getimagesize($uploadedfile); 


$newwidth=520; 
$newheight=($height/$width)*$newwidth; 
$tmp=imagecreatetruecolor($newwidth,$newheight); 


$newwidth1=154; 
$newheight1=($height/$width)*$newwidth1; 
$tmp1=imagecreatetruecolor($newwidth1,$newheight1); 

imagecopyresampled($tmp,$src,0,0,0,0,$newwidth,$newheight,$width,$height); 

imagecopyresampled($tmp1,$src,0,0,0,0,$newwidth1,$newheight1,$width,$height); 


$filename = "uploads/original/". $ran2.$ext; 

$filename1 = "uploads/thumbs/". $ran2.$ext; 



imagejpeg($tmp,$filename,100); 

imagejpeg($tmp1,$filename1,100); 

imagedestroy($src); 
imagedestroy($tmp); 
imagedestroy($tmp1); 
}} 

} 

//If no errors registred, print the success message 
if(isset($_POST['Submit']) && !$errors) 
{ 

    echo 'Image Uploaded Successfully!'; 
} 

?> 
+0

エラー報告はありますか?エラーが発生しますか? – Josh

+0

あなたはどんなエラーが表示されますか? –

+0

私はファイル拡張子が元のファイルから取り除かれて$ ext変数に格納されているとは思えないので、エラーは表示されません –

答えて

1

$extは未定義です。あなたがそう$extensionボットない$ext を定義している、使用:

$filename = "uploads/original/". $ran2.$extension; 
$filename1 = "uploads/thumbs/". $ran2.$extension; 
+0

ありがとう、私はどこかだったことを知っていた!その上に新鮮な目を持っていいこと –

0

は、スクリプトが現在のディレクトリにファイルを作成する権限を持っていると仮定すると、ビット「/オリジナルのアップロード/」せずにファイル名を試してみてください。

パスが見つからないか、 "/"文字をエスケープする必要があるか、スクリプトにこれらのディレクトリにファイルを作成する権限がない可能性があります。

また、$ extの代わりに$ extensionを使用し、If Postステートメントの前に宣言します。