転載元: http://www.jbxue.com/article/6379.html
php 画像をアップロードするためのコードは非常にシンプルで、基本的なファイル タイプとファイル サイズの検出、および基本的な透かしと圧縮を実装しています。いくつかの機能があり、初心者が参照するのに適しています。
アップロード ページと処理ページは 1 つに結合されており、ファイル名は test_upload_pic.php です。
コードのコード例をコピーします:
/*
* パラメーターdescription
* $max_file_size : アップロードファイルサイズ制限、単位 BYTE
* $destination_folder: アップロードファイルパス
* $watermark: ウォーターマークを追加するかどうか (1 はウォーターマークを追加することを意味し、それ以外はウォーターマークを追加しないことを意味します);
* http:// www.jbxue.com
* 使用手順:
* 1. GD ライブラリを使用する必要があるため、PHP.INI ファイルの「extension=php_gd2.dll」行の前にある ; 番号を削除します。 . extension_dir = を php_gd2.dll ディレクトリに変更します;
*/
// ファイル タイプ リストをアップロードします
$uptypes = array (
'image/jpg',
'image/png',
'image/jpeg',
' image/pjpeg',
'image /gif',
'image/bmp',
'image/x-png'
);
$max_file_size = 20000000 //アップロードファイルサイズ制限、単位 BYTE
$destination_folder = ' Uploadimg/'; //アップロード ファイル パス
$watermark = 1; //ウォーターマークの位置 (1 は左下隅、2 は右下隅、3 は左上隅、4 は右上隅中央);
$waterstring = "http://www.jbxue.com/" //ウォーターマーク文字列
$waterimg = "xplore.gif"; // サムネイルのスケールを縮小します
?>
$upfile = $_FILES['upfile']; = $upfile['type ']; // ファイルの種類 $size = $upfile['size']; // ファイルのサイズ $tmp_name = $upfile['tmp_name']; / /一時ファイル
$error = $ upfile ['error']; // エラーの理由
($ max_file_size & lt; $ size) {// ファイルのサイズ
echo 'アップロード ファイルが大きすぎます大きい';
終了 () }}}
if (!in_arrar($type, $uptypes)) { // 判断文件の类型
echo '上传文件类型不符' 。 $type;
exit ();
}
if (!file_exists($destination_folder)) {
mkdir($destination_folder);
}
if (file_exists("upload/" . $_FILES["file"][ "名前"])) {
echo $_FILES["ファイル"]["名前"] 。 " すでに存在します。 ";
} else {
move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_FILES["file"]["name"]);
echo "保存場所: " 。 "アップロード/" 。 $_FILES["file"]["name"];
}
$pinfo = pathinfo($name);
$ftype = $pinfo['extension'];
$destination = $destination_folder 。時間() 。 「。」 。 $ftype;
if (file_exists($destination) && $overwrite != true) {
echo "同名文件已经存在了";
exit ();
}
if (! move_uploaded_file($tmp_name, $destination) ) {
echo "転送文件出错";
exit ();
}
$pinfo = pathinfo($destination);
$fname = $pinfo[basename];
echo " 已经成功上传
文件名: " 。 $destination_folder 。 $fname 。 "gt;
";
echo " 宽度:" 。 $image_size[0];
echo " 长度:" 。 $image_size[1];
echo "
大小:" 。 $file["サイズ"] 。 「バイト」;
if ($watermark == 1) {
$iinfo = getimagesize($destination, $iinfo);
$nimage = imagecreatetruecolor($image_size[0], $image_size[1]);
$white = imagecoloral locate($nimage , 255, 255, 255);
$black = imagecolorallocate($nimage, 0, 0, 0);
$red = imagecolorallocate($nimage, 255, 0, 0);
imagefill($nimage, 0 、0、 $white);
switch ($iinfo[2]) {
case 1 :
$simage = imagecreatefromgif($destination);
ブレーク;
ケース 2 :
$simage = imagecreatefromjpeg($destination);
Break;
ケース3 :
$simage = imagecreatefrompng($destination);
ブレーク;
ケース 6 :
$simage = imagecreatefromwbmp($destination);
Break;
デフォルト :
die("不サポートな文件型");
終了します。
}} emageCopy($ nimage、$ simage、0、0、0、0、$ image_size [0]、$ image_size [1]); , $image_size[1], $white);
switch ($watertype) {
case 1 : //加水標識串
imagestring($nimage, 2, 3, $image_size[1] - 15、$ウォーターストリング, $black);
Break;
$simage1 = imagecreatefromgif("xplore.gif");
imagecopy($nimage, $simage1, 0, 0, 0, 0, 85, 15);
ブレーク;
}
switch ($iinfo[2]) {
case 1 :
//imagegif($nimage, $destination);
imagejpeg($nimage, $destination); );
ブレーク;
ケース 3 :
imagepng($nimage, $destination);
ブレーク;
ケース 6 :
imagewbmp($nimage, $destination); //imagejpeg($nimage, $destination);
ブレーク;
}
// 因标原格得文件
imagedestroy($nimage);
imagedestroy($simage);
if ($imgpreview == 1) {
echo "
";
echo "";
}
}
?>