ホームページ  >  記事  >  バックエンド開発  >  PHPで画像をアップロード

PHPで画像をアップロード

WBOY
WBOYオリジナル
2016-06-20 12:45:35986ブラウズ



/*************************************************** * *****************************

パラメータの説明:
$max_file_size : アップロード ファイル サイズの制限、単位BYTE
$destination_folder: アップロード ファイル パス
$watermark: ウォーターマークを付けるかどうか (1 はウォーターマークを追加することを意味し、それ以外はウォーターマークを追加しないことを意味します);

使用手順:
1. 変更します。 PHP.INI ファイルで、GD ライブラリを使用する必要があるため、「extension=php_gd2.dll」行の前の ; 記号を削除します。
2. extension_dir = を php_gd2.dll が存在するディレクトリに変更します。 🎜> ******* **************************************** ********** ********************* */

//アップロードファイルタイプリスト
$uptypes=array(
'image/jpg',
'image/jpeg',
'image/png',
'image/pjpeg',
'image/gif',
'image/bmp',
'image/x-png'
); 2000000; //アップロードファイルのサイズ制限、単位 BYTE
$destination_folder="uploadimg/"; // アップロードファイルのパス
$watermark=1; // ウォーターマークを追加するかどうか (1 はウォーターマークを追加することを意味します)ウォーターマークは追加しないでください) Watermark);
$watertype=1; //ウォーターマークのタイプ (1 はテキスト、2 は画像)
$waterposition=1; 2 は右下隅、3 は左上隅、4 は右上隅、5 は中央です); string
$waterimg="xplore.gif"; // ウォーターマーク画像
$imgpreview=1; // プレビュー画像を生成するかどうか (1 つは生成され、その他は生成されません); 1/2; //サムネイル比率


/title> "text/css"> <br> <- - <br /> body <br /> { <br /> font-size: <br /> } <br /> input <br /> { <br /> 背景色: #66CCFF; <br /> ボーダー: 1px インセット <br /> } <br /> --> <br> <br> <br> ; <br> <form enctype="multipart/form-data" method="post" name="upform"> <br> ファイルのアップロード: <br> <input name="upfile" type="file" > <br> <input type="submit" value ="アップロード"><br> <br> アップロードできるファイルの種類は次のとおりです:<?=implode(', ',$uptypes)? > <br> </form> <br> <br> <?php <br /> if ($_SERVER['REQUEST_METHOD'] == 'POST') <br /> { <br /> if (!is_uploaded_file $_FILES["upfile"][tmp_name])) <br /> / / ファイルは存在しますか? <br /> echo "画像が存在しません!" <br /> exit; ["size"]) <br /> // ファイル サイズを確認します <br /> { <br /> echo "ファイルが大きすぎます!" <br /> exit <br /> } <br /> <br /> if(!in_array ($file["type"], $uptypes)) <br /> //ファイルの種類を確認します <br /> { <br /> echo "ファイルの種類が一致しません!".$file["type"] <br /> exit; <br /> } <br /> <br /> if(!file_exists($destination_folder)) <br /> { <br /> mkdir($destination_folder); <br /> $image_size = getimagesize($filename); <br /> $pinfo=pathinfo($file["name"]); <br /> $ftype=$pinfo['extension']; $destination = $destination_folder.time() .".".$ftype; <br /> if (file_exists($destination) && $overwrite != true) <br /> { <br />echo "同じ名前のファイルは既に存在します"; <br /> exit; <br /> <br /> $pinfo=pathinfo($destination); Basename]; <br /> echo " <font color=red> アップロード成功</font><br>ファイル名: <font color=blue>".$destination_folder.$fname."</font> ;br>"; <br> echo " 幅: ".$ image_size[0]; <br> echo " 長さ: ".$image_size[1]; <br> echo "<br> サイズ: ".$file ["サイズ"]." バイト"; <br> <br> if($watermark==1) <br> { <br> $iinfo=getimagesize($destination,$iinfo) <br> $nimage=imagecreatetruecolor ($image_size[0],$image_size[1]); <br> $white=imagecolorallocate($nimage,255,255,255); <br> $black=imagecolorallocate($nimage,0,0,0); red=imagecolorallocate($nimage,255,0,0); <br> imagefill($nimage,0,0,$white); <br> スイッチ ($iinfo[2]) <br> { <br> ケース 1 : <br> $simage =imagecreatefromgif($destination) ; <br> ブレーク; <br> ケース 2: <br> $simage =imagecreatefromjpeg($destination); <br> ケース 3: <br> $simage =imagecreatefrompng($destination); > Type"); <br> exit; <br> } <br> <br> imagecopy($nimage,$simage,0,0,0,0,$image_size[0] ,$image_size[1]); <br> imagefilledrectangle($nimage,1,$image_size[1] -15,80,$image_size[1],$white); <br> <br> スイッチ($watertype) <br> { 2,3,$image_size[1]-15,$waterstring,$black); <br> Break; <br> case 2: //ウォーターマーク画像を追加 <br> $simage1 =imagecreatefromgif("xplore.gif "); <br> imagecopy($nimage,$simage1,0,0,0,0,85,15); <br> imagedestroy($simage1); <br> ブレーク; <br> } <br> <br> スイッチ ( $iinfo[2]) <br> { <br> ケース 1: <br>            //imagegif($nimage, $destination); <br> imagejpeg($nimage, $destination); <br> 休憩。 <br> ケース 2: <br> imagejpeg($nimage, $destination); <br> 休憩。 <br> ケース 3: <br> imagepng($nimage, $destination); <br> 休憩。 <br> ケース 6: <br> imagewbmp($nimage, $destination); <br> //imagejpeg($nimage, $destination); <br> 休憩。 <br> } <br> <br> //覆盖原上传文件 <br> imagedestroy($nimage); <br> imagedestroy($simage); <br> } <br> <br> if($imgpreview==1) <br> { <br> echo "<br>图片预览:<br>"; <br> echo "<img src="".$destination."" width=".($image_size[0]*$imgpreviewsize)." height=".($image_size[1]*$imgpreviewsize); <br /> echo " alt="图片预览:r文件名:".$destination."r上传時間:">"; <br> } <br> } <br> ?> <br> </body> <br> </html> </p> </div><div class="nphpQianMsg"><div class="clear"></div></div><div class="nphpQianSheng"><span>声明:</span><div>この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。</div></div></div><div class="nphpSytBox"><span>前の記事:<a class="dBlack" title="Laravel 5.1 での Pjax の使用" href="http://m.php.cn/ja/faq/231698.html">Laravel 5.1 での Pjax の使用</a></span><span>次の記事:<a class="dBlack" title="Laravel 5.1 での Pjax の使用" href="http://m.php.cn/ja/faq/231703.html">Laravel 5.1 での Pjax の使用</a></span></div><div class="nphpSytBox2"><div class="nphpZbktTitle"><h2>関連記事</h2><em><a href="http://m.php.cn/ja/article.html" class="bBlack"><i>続きを見る</i><b></b></a></em><div class="clear"></div></div><ins class="adsbygoogle" style="display:block" data-ad-format="fluid" data-ad-layout-key="-6t+ed+2i-1n-4w" data-ad-client="ca-pub-5902227090019525" data-ad-slot="8966999616"></ins><script> (adsbygoogle = window.adsbygoogle || []).push({}); </script><ul class="nphpXgwzList"><li><b></b><a href="http://m.php.cn/ja/faq/1.html" title="cURL を使用して PHP で Get リクエストと Post リクエストを実装する方法" class="aBlack">cURL を使用して PHP で Get リクエストと Post リクエストを実装する方法</a><div class="clear"></div></li><li><b></b><a href="http://m.php.cn/ja/faq/1.html" title="cURL を使用して PHP で Get リクエストと Post リクエストを実装する方法" class="aBlack">cURL を使用して PHP で Get リクエストと Post リクエストを実装する方法</a><div class="clear"></div></li><li><b></b><a href="http://m.php.cn/ja/faq/1.html" title="cURL を使用して PHP で Get リクエストと Post リクエストを実装する方法" class="aBlack">cURL を使用して PHP で Get リクエストと Post リクエストを実装する方法</a><div class="clear"></div></li><li><b></b><a href="http://m.php.cn/ja/faq/1.html" title="cURL を使用して PHP で Get リクエストと Post リクエストを実装する方法" class="aBlack">cURL を使用して PHP で Get リクエストと Post リクエストを実装する方法</a><div class="clear"></div></li><li><b></b><a href="http://m.php.cn/ja/faq/2.html" title="正規表現内のすべての式記号 (概要)" class="aBlack">正規表現内のすべての式記号 (概要)</a><div class="clear"></div></li></ul></div></div><ins class="adsbygoogle" style="display:block" data-ad-format="autorelaxed" data-ad-client="ca-pub-5902227090019525" data-ad-slot="5027754603"></ins><script> (adsbygoogle = window.adsbygoogle || []).push({}); </script><footer><div class="footer"><div class="footertop"><img src="/static/imghwm/logo.png" alt=""><p>福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!</p></div><div class="footermid"><a href="http://m.php.cn/ja/about/us.html">私たちについて</a><a href="http://m.php.cn/ja/about/disclaimer.html">免責事項</a><a href="http://m.php.cn/ja/update/article_0_1.html">Sitemap</a></div><div class="footerbottom"><p> © php.cn All rights reserved </p></div></div></footer><script>isLogin = 0;</script><script type="text/javascript" src="/static/layui/layui.js"></script><script type="text/javascript" src="/static/js/global.js?4.9.47"></script></div><script src="https://vdse.bdstatic.com//search-video.v1.min.js"></script><link rel='stylesheet' id='_main-css' href='/static/css/viewer.min.css' type='text/css' media='all'/><script type='text/javascript' src='/static/js/viewer.min.js?1'></script><script type='text/javascript' src='/static/js/jquery-viewer.min.js'></script><script>jQuery.fn.wait = function (func, times, interval) { var _times = times || -1, //100次 _interval = interval || 20, //20毫秒每次 _self = this, _selector = this.selector, //选择器 _iIntervalID; //定时器id if( this.length ){ //如果已经获取到了,就直接执行函数 func && func.call(this); } else { _iIntervalID = setInterval(function() { if(!_times) { //是0就退出 clearInterval(_iIntervalID); } _times <= 0 || _times--; //如果是正数就 -- _self = $(_selector); //再次选择 if( _self.length ) { //判断是否取到 func && func.call(_self); clearInterval(_iIntervalID); } }, _interval); } return this; } $("table.syntaxhighlighter").wait(function() { $('table.syntaxhighlighter').append("<p class='cnblogs_code_footer'><span class='cnblogs_code_footer_icon'></span></p>"); }); $(document).on("click", ".cnblogs_code_footer",function(){ $(this).parents('table.syntaxhighlighter').css('display','inline-table');$(this).hide(); }); $('.nphpQianCont').viewer({navbar:true,title:false,toolbar:false,movable:false,viewed:function(){$('img').click(function(){$('.viewer-close').trigger('click');});}}); </script></body></html>