<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-jp" />
<title>画像アップローダー v0.9</title>
</head>
<body>
<!--入力フォーム開始-->
<form method="POST" enctype="multipart/form-data" action="<?= basename($_SERVER['SCRIPT_NAME']) ?>">
送信したい画像ファイル(jpg,png)<br/>
<input type="hidden" name="MAX_FILE_SIZE" value="50000000"><!--ファイルサイズの上限を変える場合は、value=""の値を変更して下さい(単位はbyte)-->
<input name="MyUploadFile" type="file" style='width:200'><br/><br/>
アップロード後の画像の幅<br/>
<input type="text" name="width_new" size=10 value=""/>px<br/><br/>
アップロード先<br/>
<!--
アップロード先のパスとURL(;で区切って)、名前を入れてください。
(例)ルートからの絶対パスで入力する場合
<option value="/virtual/sample_id/public_html/www.sample1.com/images/:http://www.sample1.com/images/">サンプル1</option>
(例)本ファイルを置く場所からの相対パスで入力する場合
<option value="./images/:http://www.sample1.com/images/">サンプル1</option>
数に制限はありません
-->
<select name="upload_path">
<option value="/virtual/sample_id/public_html/www.sample1.com/images/;http://www.sample1.com/images/">サンプル1</option>
<option value="/virtual/sample_id/public_html/www.sample2.com/images/;http://www.sample1.com/images/">サンプル2</option>
<option value="/virtual/sample_id/public_html/www.sample3.com/images/;http://www.sample1.com/images/">サンプル3</option>
<option value="/virtual/sample_id/public_html/www.sample4.com/images/;http://www.sample1.com/images/">サンプル4</option>
<option value="/virtual/sample_id/public_html/www.sample5.com/images/;http://www.sample1.com/images/">サンプル5</option>
</select><br/><br/>
ファイル名(入力しなければ、自動的に決まります)<br/>
<input type="text" name="f_name" size=10 value=""/>.jpg .png<br/><br/>
クレジット入力<br/>
<select name="credit">
<option value="1">入れる</option>
<option value="0">入れない</option>
</select>
<select name="wcolor">
<option value="255">白</option>
<option value="0">黒</option>
</select>
<select name="iti">
<option value="1">左上</option>
<option value="2">左下</option>
</select>
<br/><br/>
<input type="hidden" name="day" value="<?=date('Y.m.d')?>" />
<input type="submit" value="アップロード" /><br/>
</form>
<!--入力フォーム終了-->
<?php
if ( $_SERVER['REQUEST_METHOD'] == "POST" ) {
$upload_path = $_POST['upload_path'];
$width_new = $_POST['width_new'];
$credit = $_POST['credit'];
$wcolor = $_POST['wcolor'];
$iti = $_POST['iti'];
$target = $_FILES['MyUploadFile']['name'];
$target = strtoupper($target);
$ext = array("JPG","JPEG","PNG");
$file_ok = false;
foreach( $ext as $Value ) {
$target2 = basename( $target, $Value );
if ( strlen( $target2 . $Value ) == strlen( $target ) ) {
$file_ok = true;
$kakuchosi='.'.$Value;
break;
}
}
if ( $file_ok ) {
if ( is_uploaded_file( $_FILES['MyUploadFile']['tmp_name'] ) ) {
if($_POST['f_name']){
$s_img_name=$_POST['f_name'].$kakuchosi;
}else{
$_time=time();
$s_img_name=$_time.$kakuchosi;
}
ImageConvert($s_img_name,$upload_path,$width_new,$credit,$wcolor,$iti);
}
else {
print "アップロードに失敗しました\n";
}
}
else {
print "アップロード対象ファイルではありません\n";
}
}
# **********************************************************
# アップロードされたファイルを縮小して保存
# **********************************************************
function ImageConvert($s_img_name,$upload_path,$width_new,$credit,$wcolor,$iti) {
list($upload1,$upload2)= explode(';',$upload_path);
$upload1 .= $s_img_name;
$upload3= str_replace('images/','',$upload2);
# テンポラリディレクトリにある実際のファイル
$file = $_FILES['MyUploadFile']['tmp_name'];
# ファイルの属性等を取得
$target = getimagesize( $file );
# 現在のサイズ
$width = $target[0];
$height = $target[1];
# 新しいサイズ
$height_new = (int)( ($height/$width)*$width_new );
# JPEG の場合
if ( $target[2] == IMAGETYPE_JPEG ) {
# 元のファイルのハンドル
$jpeg = imagecreatefromjpeg ( $file );
# 新しいイメージ
$jpeg_new = imagecreatetruecolor( $width_new, $height_new );
# サイズ変更して新しいイメージへ転送
$ret = imagecopyresampled(
$jpeg_new,
$jpeg,
0,
0,
0,
0,
$width_new,
$height_new,
$width,
$height
);
if ( !$ret ) {
print "サイズ変更に失敗しました\n";
return;
}
if($width_new>=200 and $credit==1){
//色の作成(文字)
$col = imagecolorallocate($jpeg_new, $wcolor, $wcolor, $wcolor);
if($iti=="1"){
$xx=5;
$yy=5;
}elseif($iti=="2"){
$xx=5;
$yy=$height_new-20;
}
//文字を書く
imagestring($jpeg_new, 2, $xx, $yy, '(C)'.$upload3, $col);
}
# JPEG ファイルとして、クオリティ 100 で出力
$ret = imagejpeg ( $jpeg_new, $upload1, 100);
if ( !$ret ) {
print "ファイル作成に失敗しました\n";
return;
}
print $_FILES['MyUploadFile']['name']." を ".$upload1." へアップロードしました。<br><br>\n";
$img1='<IMG src="'.$upload2.$s_img_name.'" border=0 >';
print htmlspecialchars($img1);
return;
}
# PNG の場合
if ( $target[2] == IMAGETYPE_PNG ) {
$png = imagecreatefrompng( $file );
$png_new = imagecreatetruecolor( $width_new, $height_new );
$ret = imagecopyresampled(
$png_new,
$png,
0,
0,
0,
0,
$width_new,
$height_new,
$width,
$height
);
if ( !$ret ) {
print "サイズ変更に失敗しました\n";
return;
}
if($width_new>=200 and $credit==1){
//色の作成(文字)
$col = imagecolorallocate($png_new, $wcolor, $wcolor, $wcolor);
if($iti=="1"){
$xx=5;
$yy=5;
}elseif($iti=="2"){
$xx=5;
$yy=$height_new-20;
}
//文字を書く
imagestring($png_new, 2, $xx, $yy, '(C)'.$upload3, $col);
}
$ret = imagepng ( $png_new, $upload1 );
if ( !$ret ) {
print "ファイル作成に失敗しました\n";
return;
}
print $_FILES['MyUploadFile']['name']." を ".$upload1." へアップロードしました。<br><br>\n";
$img1='<IMG src="'.$upload2.$s_img_name.'" border=0 >';
print htmlspecialchars($img1);
return;
}
print "アップロード対象ファイルではありません\n";
}
?>
</body>
</html>