2011-06-19 9 views
1

私に助言してください:画像アップロードを登録プロセスに統合したいと思います。この目的のためのプラグインまたはスクリプトを知っていますか(アップロード、サイズ変更、db_tableへのリンクを貼り付けますか?)画像アップロードの登録ページへの統合

+1

この質問をする前に、あなたはどんな研究をしましたか? –

+1

私はアップロードしたりサイズを変更するものが見つかりませんでした。あなたがいくつかのスクリプトを知っている場合私にリンクを与えてください –

答えて

2

GDライブラリを使用して画像をアップロードしてトリミングするためのPHPコードを以下で見つけてください。

<?php 
function createThumb($upfile, $dstfile, $max_width, $max_height){ 
    $size = getimagesize($upfile); 
    $width = $size[0]; 
    $height = $size[1]; 
    $x_ratio = $max_width/$width; 
    $y_ratio = $max_height/$height; 
    if(($width <= $max_width) && ($height <= $max_height)) { 
      $tn_width = $width; 
      $tn_height = $height; 
    } elseif (($x_ratio * $height) < $max_height) { 
      $tn_height = ceil($x_ratio * $height); 
      $tn_width = $max_width; 
    } else { 
      $tn_width = ceil($y_ratio * $width); 
      $tn_height = $max_height; 
    } 
    if($size['mime'] == "image/jpeg"){ 
      $src = ImageCreateFromJpeg($upfile); 
      $dst = ImageCreateTrueColor($tn_width, $tn_height); 
      imagecopyresampled($dst, $src, 0, 0, 0, 0, $tn_width, $tn_height,$width, $height); 
      imageinterlace($dst, true); 
      ImageJpeg($dst, $dstfile, 100); 
    } else if ($size['mime'] == "image/png"){ 
      $src = ImageCreateFrompng($upfile); 
      $dst = ImageCreateTrueColor($tn_width, $tn_height); 
      imagecopyresampled($dst, $src, 0, 0, 0, 0, $tn_width, $tn_height,$width, $height); 
      Imagepng($dst, $dstfile); 

    } else { 

      $src = ImageCreateFromGif($upfile); 
      $dst = ImageCreateTrueColor($tn_width, $tn_height); 
      imagecopyresampled($dst, $src, 0, 0, 0, 0, $tn_width, $tn_height,$width, $height); 
      imagegif($dst, $dstfile); 
    } 
} 

//usage 

if(isset($_FILES['upload_Image']['name']) && $_FILES['upload_Image']['name']!=='') { 
    $ext = substr($_FILES['upload_Image']['name'], strpos($_FILES['upload_Image']['name'],'.'), strlen($_FILES['upload_Image']['name'])-1); 

    $imgNormal = time().$ext; 
    $normalDestination = "Photos/Orignal/" . $imgNormal; 
    $httpRootLarge = "Photos/Large/" . $imgNormal; 
    $httpRootSmall = "Photos/Small/" . $imgNormal; 
    $httpRootThumb = "Photos/Thumb/" . $imgNormal; 
    move_uploaded_file($_FILES['upload_Image']['tmp_name'], $normalDestination); 
    createThumb($normalDestination,$httpRootLarge,680,604); #For 604x604 Image 
    createThumb($normalDestination,$httpRootSmall,500,300); #For 500x300 Image 
    createThumb($normalDestination,$httpRootThumb,130,100); #For 130x100 Image 
} 
?> 
<form action="" method="post" enctype="multipart/form-data"> 
<label for="file">Filename:</label> 
<input type="file" name="upload_Image" id="upload_Image" /> 
<br /> 
<input type="submit" name="submit" value="Submit" /> 
</form> 

save $ imgテーブルの通常の値です。

+0

http://pastebin.com/Ed2YHV6w – mplungjan

1

イメージをmysqlにアップロードし、imagemagicまたはgdライブラリを使用してサイズを変更することができます。

+0

MySQLのテーブルに?いいえ。私はそれらをフォルダにアップロードしてから、イメージへのリンクを取得し、そのリンクをdn-tableに入れたいとします。 –

+0

この目的のためにPHPスクリプトを持っていますか? –

+0

フォルダにアップロードしたい場合。フォルダに対して正しい権限を設定し、enctype = "multipart/form-data"でフォームアップロードを使用し、$ _FILEを使用してアクセス権を取得する必要があります。 – NiLL

0

あなたはmove_uploaded_file to uploadを使用しますが、フォーム要素は、画像スケーリングのための属性enctype="multipart/form-data"

に持っている必要があることに注意することができます、あなたはGDライブラリの関数を使用することができます。 "php scale image"のクイック検索では、その対象に関する多くの有用なリンクが明らかになります。

manual itselfには、あなたが後にしているような多くの有用なサンプルスクリプトがあります。

あなたはPHPを初めて使い慣れたようです。 PHP manualを知ることをお勧めします。あなたの最初のPHPリソースとして使用し、次にインターネット上の記事を使用します。他のすべてのオプションを使い果たしたら、ここに来てください。あなたはこれを解決しようとしたり、自分で研究しようとしなかったようです。

0

他のポスターと同様に、http://github.com/valums/file-uploaderとphpthumbのようなファイルアップローダーを見ることができますが、詳細を知りたい場合はそれほど複雑ではありません。

関連する問題