2012-05-07 15 views
-2

私は、ユーザーがサーバーに画像をアップロードできるようにする簡単なPHPスクリプトを用意しています。私は、これらの画像をHTMlページにサムネイルとして表示してから、ユーザーがこれらのサムネイルをクリックさせ、元の画像が新しいページに表示されるように助けています。サムネイル画像を表示するためのコード

これに直線HTMLを使用できますか?または、私はjavascriptまたはPHPのバリエーションのいくつかの組み合わせが必要ですか?

私はstackoverflowでこれについて多くの質問があることを知っていると私はそれらを試してみましたが、私は後に何もないです。

ユーザーが画像をアップロードしたときに個人的に各サムネイルを作成しなくても、サムネイルを「飛んで」作成するのが好ましいと思います。

基本的にこれを行うにはどの言語を使用する必要がありますか?また、可能であればソースコードをいくつか持てますか?

おかげで、彼らが要求されているすべての時間は非常に悪い考えであるサムネイルを作成

+0

あなたはいくつかの小さなにあなたのタスクを分割し、それらをステップ・バイ・ステップ解決する必要があります。 1つの固体の金属からロケットを作り上げる者は誰もいません – zerkms

+0

元の画像のポップアップに便利なライトボックスhttp://lokeshdhakar.com/projects/lightbox2/ –

答えて

0

- それは簡単にあなたがそれらを作成するには、最初の頃にそれらを保つことによって保存される処理能力、のたくさんかかります。私は、ファイルアップロードを処理するPHPスクリプトにサムネイルの作成を入れて、画像とそのサムネイルを同時にディスクに保存することをお勧めします。また、サムネイルをメモリに保持したり、初めてサムネイルを作成するまで待つことができますが、要求されるたびにサムネイルを再生成することはできません。

単に幅および/または高さプロパティを設定することで、画像のサイズを変更するには、HTMLを使用することが可能である:

<img src='foo.jpg' alt='foo' width='500' height='300'/> 

ユーザーと確信されていない場合しかし、これは悪い考えです後でフルサイズの画像を表示したいと考えています。その理由は、サムネイルがフルイメージよりもファイルサイズが小さくなっているためです。クライアントがサムネイルを表示するだけの場合は、帯域幅(お金とクライアントの時間)を無駄にしたくないため、フルイメージを送信しません。

あなたのインターフェイスに関しては、これを達成するためにjavascriptは必要ありません。ちょうどhtmlです。ただし、htmlページがリンクするサムネイルを作成するには、サーバー側のスクリプトが必要です。

+0

よろしくお願い致します。サーバー上にあるフォルダ内のすべての画像を表示してWebページに表示する簡単なスクリプトがありますか? – user1378688

+0

ほとんどのサーバーでは、ディレクトリ内のファイルを一覧表示するプラグインは必要ありません。ウェブサイト上のそのディレクトリに移動するだけです。もちろん、サムネイルではなくリンクのみが表示されます。あなたの問題全体に対処するための既成のプラグインはわかりません - あなたはそれを部分的に解決する必要があります。 –

0

そこにはたくさんのPHPサムネイルスクリプトがあります。

リライタを使用しても、元のパスは表示されますが、PHPのサムネイルバージョンが表示されます。それとも、何かへのURLの変更持っている必要があります:

<img src="thumb.php?file=path/to/picture.jpg&size=128" /> 

Mighty Stuff

phpThumb

をちょうどそのような2つです。キャッシュされたフォルダを使用するように最適に構成されています。私は職場で最初のスクリプトの修正版を使用します。

+0

私はMighty Stuffのコードを使って遊んでいますが、//スクリプトの設定セクションを開始する際に問題があります...これについていくつか指導してもらえますか?私は、サーバー上のフォルダにthumb.phpファイルを持っています。 Winter.jpgという名前の画像のサムネイルを作成し、thumb.phpファイルを含むディレクトリから1つ上のフォルダである/ thumbnails /というフォルダに配置したいと思っています。 – user1378688

+0

サムネイルを作成するすべてのファイルは、サムスクリプトに関連している必要があります。あなたが必要とするすべての../などをします。また、サムネイルのサイズを指定していることを確認してください。最後にサムネイルに直接行って、PHPエラーがオンになっているかどうか確認してください。 – Recognizer

0

apponをビルドできるPHPスクリプトは、jpgイメージでのみ動作します。

ディレクトリをスキャンし、イメージを適切な次元に正規化し、親指をオンザフライで作成し、次のリフレッシュ時に親指ディレクトリに既に存在するイメージを再処理する必要はありません。それが役に立てば幸い...

スクリプトの配置

Root> 
    thisscript.php 
    /images/ 
      someimage.jpg 
      someimage2.jpg 

thisscript.php

<?php 
// config section 
$path = "./images/"; 
$thpath = $path."thumbs/"; 
// end configration 

// Open the directory 
$do = dir($path); 
// now check if the thumb dir is available if not, create it!! 
if (!is_dir($thpath)){ 
    mkdir($thpath); 
} 

$output = '<div>'; 
while (($file = $do->read()) !== false){ 
    if (is_dir($path.$file)){ 
     continue; 
    }else{ 
     $info = pathinfo($path.$file); 
     $fileext = $info['extension']; 
     if (strtolower($fileext) == 'jpg'){ 
      if (!is_file($thpath.$file)){   
       //Normalize Super lrg Image to 750x550   
       thumb_it($path, $file, $path,750,550,99); 
       //Make Thumb 200x125 
       thumb_it($path, $file, $thpath,200,125,99); 

       $output .='<p><a href="'.$path.$file.'"><img src="'.$thpath.$file.'" title="" alt="" /></a></p>'; 
      }else{ 

       $output .='<p><a href="'.$path.$file.'"><img src="'.$thpath.$file.'" title="" alt="" /></a></p>'; 
      } 
     } 
    } 
} 
$output .='</div>'; 

echo $output; 

//Functions 
function thumb_it($dirn, $file, $thumbdir,$rwidth,$rheight,$quality){ 
    set_time_limit(0); 

    $filename = $dirn.$file; 
    $thfilename = $thumbdir.preg_replace('/[^a-zA-Z0-9.-]/s', '_', $file); 
    // get the filename and the thumbernail directory 
    if (is_file($filename)){ 
     // create the thumbernail from the original picture 
     $im = @ImageCreateFromJPEG($filename); 
     if($im==false){return false;} 
     $width = ImageSx($im); // Original picture width is stored 
     $height = ImageSy($im); // Original picture height is stored 

     if (($width < $rwidth) && ($height < $rheight)){ 
      $n_height = $height; 
      $n_width = $width; 
     }else{ 
      // saveing the aspect ratio 
      $aspect_x = $width/$rwidth; 
      $aspect_y = $height/$rheight; 

      if ($aspect_x > $aspect_y){ 
       $n_width = $rwidth; 
       $n_height = $height/$aspect_x; 

      }else{ 
       $n_height = $rheight; 
       $n_width = $width/$aspect_y; 
      } 
     } 

     $newimage = imagecreatetruecolor($n_width, $n_height); 
     // resizing the picture 
     imageCopyResized($newimage, $im, 0, 0, 0, 0, $n_width, $n_height, $width, $height); 
     // writing to file the thumbnail 
     if(file_exists($thfilename)){chmod($thfilename, 0777);} 
     Imagejpeg($newimage, $thfilename, $quality); 
     imagedestroy($newimage); 
     imagedestroy($im); 
    } 
} 
?> 
+0

ありがとう、ローレンス。私はあなたが掲示したとおりに正確にスクリプトを保管し、いくつかの画像を持つフォルダに置いた。ページはエラーなしで実行されますが、サムネイルを含むフォルダは表示されません。私は何か間違っているのですか? – user1378688

+0

'images'という名前のフォルダを作成し、そこにすべての画像を入れます。上のconfigビットを見てください –

+0

は、PHPスクリプトと同じディレクトリにあるimagesフォルダですか? – user1378688

関連する問題