<?php
//===============================================================================
// ■■ MASAGO 離れPHP島 :GDライブラリ(3) ■■
// Class :php20040218.php
// Copyright :masago.kir.jp
// Made by :Masago
// Date :2004/02/18
// Last Update :2004/02/18
//
// Comment :大きさを変更しようっ
//
// Caution :GDライブラリ[3]
//==============================================================================
//-----------------------------------------------
// □ 変数の初期化
//-----------------------------------------------
$error = ""; //エラー
//======================================================
// ■ POSTされたときはログイン情報をチェック ■
//======================================================
if ($_SERVER["REQUEST_METHOD"]=="POST"){
//------------------------------------------------------
// □ 戻るボタン押下
//------------------------------------------------------
if (isset($_POST["submit"])){
//------------------------------------------------------
// □ POSTされた名前を変数に保存
//------------------------------------------------------
$img1 = $_FILES['img1']; // アップロードファイルオブジェクト
$img1tmp = $_FILES['img1']['tmp_name']; //tmpファイル名
$img1name = $_FILES['img1']['name']; //ローカルファイル名
$img1size = $_FILES['img1']['size']; //サイズ
$img1type = $_FILES['img1']['type']; //タイプ
$cwidth = $_POST['cwidth']; // 変更幅
$cheight = $_POST['cheight']; //変更縦
$cwidth = mb_convert_kana($cwidth,"as",EUC); //半角に
$cheight = mb_convert_kana($cheight,"as",EUC); //半角に
if (!ereg("^[0-9]*$",$cwidth)){$error="幅に誤りがあります。";}
if (!ereg("^[0-9]*$",$cheight)){$error="縦に誤りがあります。";}
if ($cwidth>800){$error="幅が大きすぎます";}
if ($cheight>600){$error="縦が大きすぎます";}
if ($error==""){
//------------------------------------------------------
// ■ アップロード画像チェック
//------------------------------------------------------
$kaku="";
//POSTでHTTPでUPしたfileがあったら?
if (is_uploaded_file($img1tmp)) {
//filetypeがgifだったら?
if ($img1type=="image/gif"){
$error="gif画像は操作できません";
}
//x-pngやjpaeだったら拡張子を変換
if ($img1type=="image_png" || $img1type=="image/x-png"){$kaku=".png";}
if ($img1type=="image/jpeg" || $img1type=="image/pjpeg"){$kaku=".jpg";}
//変換した拡張子が空だったら?
if ($kaku==""){$error="アップロード画像に誤りがあります";}
//エラーがなく拡張子空な場合?
if ($kaku!="" && $error==""){
//---------------------------------------
// □ 画像のサイズを変更
//---------------------------------------
//listで配列変数の割り当て、幅と縦
list($width,$height)=getimagesize($img1tmp);
//imagecreatefromjpegはファイルまたは、URLから画像を作成する
$src=@imagecreatefromjpeg($img1tmp);
//ダミーの黒い画像を返します
$dst=imagecreatetruecolor($cwidth,$cheight);
//$dst変数に$srcに格納された画像をxyを指定してコピーする
imagecopyresized($dst,$src,0,0,0,0,$cwidth,$cheight,$width,$height);
//↑↑↑でコピーされた画像をPHPスクリプトでファイルで保蔵、または直接表示出来ます。
$boRtn=imagejpeg($dst,"20040218/" .date("YmdHis") .$kaku);
if ($boRtn){
$error="アップロードに成功しました。";
}else{
$error="アップロードに失敗しました。";
}
}else{
$error="ファイルの種類に誤りがあります。";
}
}
}
}
}else{
$cwidth="100";
$cheight="100";
}
//======================================================
// ■ H T M L ■
//======================================================
?>
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=euc-jp">
<META HTTP-EQUIV="Cache-control" CONTENT="no-cache">
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<TITLE>2004/02/18 Sample</TITLE>
</HEAD>
<BODY BGCOLOR="#ffffff" style="margin:0px" marginwidth="0" marginheight="0">
<FONT SIZE="2">
<A HREF="phpmenu.php">メニューへ</A>
<A HREF="phpsc.php?s=php20040218s.php">このページのソース</A>
<CENTER>
<BR><BR>
<B>画像をアップロードしてサイズ変更</B><BR><BR>
* jpg,pngのみ有効。ファイルサイズは50Kまで *<BR>
</FONT>
<BR>
<?php
//---------------------------------------------
// □ エラーメモリを表示
//---------------------------------------------
if ($error!=""){echo "<FONT COLOR=\"#ff0000\">$error</FONT>";}
?>
<BR>
<BR>
<?php
//---------------------------------------------
// □ フォーム
//---------------------------------------------
?>
<FORM NAME="objform" ACTION="<?php echo $_SERVER['SCRIPT_NAME']; ?>" METHOD="POST" ENCTYPE="multipart/form-data">
<INPUT TYPE="hidden" NAME="MAX_FILE_SIZE" VALUE="50000">
画像ファイル:<INPUT TYPE="file" NAME="img1" SIZE="40"><BR>
幅:<INPUT TYPE="text" NAME="cwidth" SIZE="5" VALUE="<?php echo $cwidth; ?>">pix<BR>
縦:<INPUT TYPE="text" NAME="cheight" SIZE="5" VALUE="<?php echo $cheight; ?>">pix<BR>
<INPUT TYPE="submit" NAME="submit" VALUE="アップロード">
</FORM>
<BR>
<HR WIDTH="600">
<BR>
<?php
//---------------------------------------------
// □ アップロードされた画像を表示
//---------------------------------------------
//ファイルを取得
$cnt=0;
$filename=array();
if ($dir = @opendir("20040218")) {
while($file = readdir($dir)) {
if (!is_dir($file)){
$cnt++;
$filename[$cnt]=$file;
}
}
closedir($dir);
}
//SORT!!
rsort($filename);
$cnt=0;
?>
<TABLE BORDER="0" WIDTH="600">
<?php
$cnt=0;
foreach($filename as $value){
$cnt++;
if ($cnt==1){echo "<TR>";}
echo "<TD VALIGN=\"center\" ALIGN=\"center\">\n";
echo "<IMG BORDER=\"0\" SRC=\"20040218/$value\">\n";
echo "</TD>\n";
if ($cnt==4){
echo "</TR>\n";
$cnt=0;
}
}
if ($cnt<4){
$cnt=4-$cnt;
echo "<TD COLSPAN=\"$cnt\"> </TD>\n";
echo "</TR>\n";
}
?>
</TABLE>
</CENTER>
</BODY>
</HTML>
0 件のコメント:
コメントを投稿