小さな画像を生成する機能の実装コード。それぞれに詳細な説明パラメータがあります。 コードは次のとおりです コードをコピー <入力タイプ='送信' 名前='サブ' 値='送信'> フォーム> uploads.php ファイル クラスイメージ_アップロード{ private $srcimg; //オリジナル画像 private $destimg; // ターゲット画像 private $width; //元の画像の幅 private $height; //元の画像の高さ private $type; //元のファイルの画像タイプ private $thumb_width //サムネイルの幅 private $thumb_height; //サムネイルの高さ private $cut; //画像を指定した高さにカットするかどうか private $tmp; //写真アップロード用の一時アドレス プライベート $error; private $im //一時的な画像ハンドルを作成します private $new_name; //アップロードされたファイルの新しい名前 function __construct($srcimg,$t_width,$t_height,$cut,$tmp,$error){ $this->srcimg=$srcimg; $this->thumb_width=$t_width; $this->親指の高さ=$t_高さ; $this->cut=$cut; $this->tmp=$tmp; $this->error=$error; $this->get_srcimg_type(); $this->get_new_upload_name(); } 関数 img_upload(){ //ファイルのアップロード方法 $this->check_error($this->error); $this->in_type(); $dst_dir='./images'; if(!is_dir($dst_dir)){ mkdir($dst_dir); エコー "%%%"; } if(is_uploaded_file($this->tmp)){ If(move_uploaded_file($this->tmp, $this->new_name)){ echo "ファイルは正常にアップロードされました"; true を返します; }その他{ echo 'ファイルを移動できません。アップロードに失敗しました'; 終了します; } }その他{ echo 'ファイルのアップロードは攻撃されている可能性があります'; 終了します; } } 関数 make_thumbnail(){ //サムネイルを生成するメソッド $this->get_dest_imgpath(); $this->make_im(); $this->width=imagesx($this->im); $this->height=imagesy($this->im); $thumb_ratio=$this->親指の幅/$this->親指の高さ; $ratio=$this->幅/$this->高さ; if($this->cut==1){ //トリミングするかどうか If($ratio>=$thumb_ratio){ $img=imagecreatetruecolor($this->thumb_width, $this->gt;thumb_height); imagecopyresampled($img, $this->im, 0, 0, 0, 0, $this->thumb_width, $this->thumb_height, $this->height*$thumb_ratio, $this->height ); Imagejpeg($img,$this->destimg); echo "サムネイルが正常に生成されました"; }その他{ $img=imagecreatetruecolor($this->thumb_width, $this->gt;thumb_height); imagecopyresampled($img, $this->im, 0, 0, 0, 0, $this->thumb_width, $this->thumb_height, $this->width, $this->width/$thumb_ratio ); Imagejpeg($img,$this->destimg); echo "サムネイルが正常に生成されました"; } }その他{ if($ratio>=$thumb_ratio){ $img=imagecreatetruecolor($this->thumb_height*$thumb_ratio, $this->thumb_height); imagecopyresampled($img, $this->im, 0, 0, 0, 0, $this->thumb_height*$thumb_ratio, $this->thumb_height, $this->width, $this->height ); Imagejpeg($img,$this->destimg); echo "サムネイルが正常に生成されました"; }その他{ $img=imagecreatetruecolor($this->thumb_width, $this->gt;thumb_width/$thumb_ratio); imagecopyresampled($img, $this->im, 0, 0, 0, 0, $this->thumb_width, $this->thumb_width/$thumb_ratio, $this->width, $this->height ); Imagejpeg($img,$this->destimg); echo "サムネイルが正常に生成されました"; } } imagedestroy($this->im); imagedestroy($img); } プライベート関数 check_error($error){ // ファイルのアップロード エラーをチェックします; if($error>0){ スイッチ($error){ ケース 1: echo "アップロードされたファイルのサイズが PHP.INI ファイルの設定を超えています"; 休憩 ケース 2: echo "アップロードされたファイルのサイズがフォームの制限を超えています"; 休憩 ケース 3: echo "一部のファイルのみがアップロードされました"; 休憩ケース4: echo "アップロードされたファイルはありません"; 休憩 ケース6: echo "php.ini には画像ストレージに関する一時的な不明な設定はありません"; 休憩 ケース7: echo "ハードディスクに書き込むことができず、アップロードに失敗しました"; 休憩 デフォルト: echo "不明なエラー"; 休憩 } } } プライベート関数 get_srcimg_type(){ //ソースファイルの画像タイプを決定します $this->type=substr(strrchr($this->srcimg, '.'),'1'); } プライベート関数 in_type(){ // ファイルの種類が一致するかどうかを確認します $type_arr=array('gif','jpg','png'); if(!in_array($this->type, $type_arr)){ echo "PNG、GIF、JPG の 3 種類のファイル形式のみをサポートしています...正しい形式を再アップロードしてください"; 終了します; } } プライベート関数 get_new_upload_name(){ //アップロードされたファイルの新しい名前を生成します $this->new_name='images/'.date('YmdHis').'.'.$this->type; } プライベート関数 make_im(){ //元のファイルから新しい画像を作成します スイッチ($this->type){ ケース「jpg」: $this->im=imagecreatefromjpeg($this->new_name); 休憩 ケース「gif」: $this->im=imagecreatefromgif($this->new_name); 休憩 ケース「png」: $this->im=imagecreatefrompng($this->new_name); 休憩 } } プライベート関数 get_dest_imgpath(){ //サムネイルの保存パスを取得します $len1=strlen($this->new_name); $len2=strlen(strrchr($this->new_name,'.')); $len3=$len1-$len2; $this->destimg=substr($this->new_name,0,$len3).'_small.'.$this->type; } } print_r($_FILES); $file=$_FILES['画像']; echo $file['name']; $uploads=new image_upload($file['name'], 120, 160, 1, $file['tmp_name'],$file['error'] ); if($uploads->img_upload()){ $uploads->make_thumbnail(); } ?> http://www.bkjia.com/PHPjc/632970.htmlwww.bkjia.com本当http://www.bkjia.com/PHPjc/632970.html技術記事小さな画像を生成する機能を実装した実装コードには、詳細な説明パラメータが含まれています。 コードは次のとおりです。 action=uploads.php method=pos... のコードをコピーします。