質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

メール

メールは、コンピュータネットワークを利用し、 情報等を交換する手段のことです。

解決済

PHPで受け取ったメールに添付された画像の縮小方法

u-sukesan
u-sukesan

総合スコア141

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

メール

メールは、コンピュータネットワークを利用し、 情報等を交換する手段のことです。

2回答

0評価

0クリップ

694閲覧

投稿2019/03/19 13:54

編集2019/03/19 14:01

前提・実現したいこと

現在forwardにてメールをPHPに転送し
処理をして画像の保存やDBへの保存を行なっています。

しかし画像が受け取ったまま格納しているためあるサイズ以上なら縮小して格納したい
画像保存箇所だと思うのですが、「フォームで受け取った画像を縮小して」という方法であれば$_FILEなどを加工して・・とわかるのですが
どれが$_FILEに当たるのか、わからず質問致しました。

①例えば横幅が600px以上であれば600pxにしようとする場合、どのように追記すればよろしいでしょうか

②追加で質問です。たまにメールに添付された画像(保存した画像)がHTMLで表示すると横向きのまま表示されます。
おそらくスマホで横向き取った画像だと思うのですが、こういうのは受け取った時に直せるのでしょうか?

該当のソースコード

$params['include_bodies'] = true; $params['decode_bodies'] = true; $params['decode_headers'] = true; $params['input'] = file_get_contents("php://stdin"); // 標準入力 $params['crlf'] = "\r\n"; $structure = Mail_mimeDecode::decode($params); $CHARSET_TO="UTF-8"; $localprefix = dirname(__FILE__)."/../"; $path = "img/"; switch(strtolower($part->ctype_primary)){ case "text": $charset = $part->ctype_parameters['charset']; if ( $charset ) { $charset_from = $charset; } else { $charset_from = 'auto'; } $body = mb_convert_encoding( $part->body, $CHARSET_TO, $charset_from ); switch(strtolower($part->ctype_secondary)){ case "plain":   //処理 break; case "html":        //処理 break; } break; case "image": $filename = $part->d_parameters['filename']; $filetype = $part->ctype_primary; if(!empty($part->headers ['content-id'])){ $key = 'cid:'.trim($part->headers ['content-id'],"<>"); }else{ $key = $filename; if(!empty($html)){       //処理 } } //フォルダを作成 $diaryfolder = $localprefix.$path; if(!file_exists($diaryfolder)){ mkdir($diaryfolder,0777,true);} chmod($diaryfolder, 0777); // 画像ファイル自体はファイル保存。    //おそらくここで画像縮小してごにょごにょだと思うのですが $image_path = $diaryfolder. $filename; if($fp = fopen($image_path, 'w')){ $length = strlen($part->body); fwrite($fp, $part->body, $length); fclose($fp); chmod($image_path, 0644); } break; case "multipart":     //処理 break; }

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

メール

メールは、コンピュータネットワークを利用し、 情報等を交換する手段のことです。