添付ファイル送信機能の追加実装方法
2009-09-11 (金) 18:41:13 投稿者 浪花 www.airdesigns.co.jp/sample/jibun/form/mailform/example.html
すばらしいメールフォームプログラムをフリーで公開していただき、ありがとうございます。
確認画面や入力記憶などの仕組みがカッコイイので、こちらのフォームに
「添付ファイルを含むメールを送信する」
という機能を追加したいと考えています。
過去ログの添付ファイルの記事も拝見しましたが、
(www.synck.com/contents/download/support_bbs/1247593542.html)
そちらでサンプルとして上げていただいたプログラムなどを改造すれば、
添付機能だけを追加実装できると考え、改造作業に取り掛かりました。
しかし、添付ファイル用に「enctype="multipart/form-data"」を追加したところ
フォームデータが化けてしまい、正しく取得できない症状が発生してしまいました。
元ページ(example.htmlなど)のcharsetをShift_JISにしても化けてしまうようです。
「enctype="multipart/form-data"」を指定しない場合は正しく動作しておりますが、
添付データの取得は出来ていません。(指定がないので当たり前ですが。)
なぜデータが化けてしまうのでしょうか。
どのようにすれば、正しいデータを取得できますでしょうか。
- Re:添付ファイル送信機能の追加実装方法
- 2009-09-12 (土) 15:57:26 投稿者 和田 www.synck.com結構大変なんですよファイルを添付するっつーのは・・・。
まずmultipart/form-dataにすると、既存の受け取り方で受け取れなくなるためCGI.pmなどを使ってバイナリやテキストを受け取るやり方に変更しなくちゃいけないんですね。そうなると骨格から変更しなくてはならないためちょっぴりシンドいのです・・・。申し訳ない・・・。
- Re:添付ファイル送信機能の追加実装方法
- 2009-09-12 (土) 16:17:23 投稿者 浪花 www.airdesigns.co.jp/sample/jibun/form/mailform/example.html土曜日だというのに返信ありがとうございます;
なるほど。
受け取り部分の仕様が関係しているのですか…。
てっきり文字コード絡みをなんとかすれば、化けないのではないかと思っていました。
確かに触りたくない部分ですよね。
反応が気持ち良いフォームだったので、これを改造できないのは残念ですが
(メール生成部分とかは既に作っていたんですが…)、今回は断念します。
返答ありがとうございました。
- Re:画像添付実装にあたって
- 2010-01-12 (火) 18:03:51 投稿者 和田 www.synck.com添付ファイル機能は現時点では4万円になります。
- upload.cgiについて
- 2010-02-02 (火) 01:32:10 投稿者 とまと www.tomato.gr.jp/bcat/mailform/upload.htmlはじめまして。感動的なフォームに興奮気味です(〃∇〃)☆
そこで、以前にDL出来るようにして頂いたupload.zipをDLして解凍して設置した所、無事にデータを送るとupload.htmlにジャンプするようになりました。
だがしかし。
jpgを参照して送信すると「ファイルタイプがマッチしません」と表示されてしまいます。
以下を見て、これだとpdfファイルじゃないとエラーになるのかな?と思い
($sec,$min,$hour,$day,$mon,$year) = localtime(time);
$save_file_path = sprintf("%04d-%02d-%02d\.jpg",$year += 1900,$mon+1,$day,$hour,$min,$sec);
$save_file_path = time . ’.jpg’;
中略
if($mimetype ne ’application/jpg’){
$msg = ’ファイルタイプがマッチしません。’;
unlink $save_file_path;
}
else {
$msg = ’JPGファイルですー’;
}
に直しましたが(上の二箇所と下の二箇所)同じ結果です。
お忙しいところ、まことに恐れ入りますがご教授願えれば幸いです。
- upload.cgiについて
- 2010-02-04 (木) 11:26:25 投稿者 和田 www.synck.comたぶんあってると思いますよっ!
- いや・・・・
- 2010-02-07 (日) 22:32:32 投稿者 とまと www.tomato.gr.jp/bcat/mailform/upload.html>たぶんあってると思いますよっ!
ですから、これに書き換えたんですけど「ファイルタイプがマッチしません」と表示されてしまいます。(T-T)
- Re:いや・・・・
- 2010-02-07 (日) 22:35:08 投稿者 和田 www.synck.comよく読まない子でスイマセン・・・。
if($mimetype ne ’application/jpg’){
$msg = ’ファイルタイプがマッチしません。’;
を
$msg = $mimetype;
としてみると原因がわかるかも。
- 書き換えてみました。
- 2010-02-14 (日) 01:17:11 投稿者 とまと www.tomato.gr.jp/bcat/cgi/mailform/upload.htmlimage/jpeg
と表示されました。。。。
(上のURL間違ってました(^-^;)すみません)
- Re:書き換えてみました。
- 2010-02-18 (木) 17:55:37 投稿者 和田 www.synck.comであればmimeタイプをimage/jpegにしてお試しください。
ただ、このスクリプト自体ほとんど記憶に無いため動作や挙動についてはセキュリティをある程度考えた上でご利用いただけると助かります。
- ファイルの保存場所を限定するには
- 2010-11-04 (木) 16:36:04 投稿者 francie doll.naoichigo.com/sample/いつもお世話になっています。
ファイルの添付機能の代用で、upload.cgiを使わせて頂こうと思っています。どうにか、pdf専用をzipの送信が出来るように改造できたのですが、もっとカスタマイズしたいのですが苦戦しています。力を貸して頂ければ有難いです。
その1:送信されたファイルが、決められたフォルダに入るようにしたいです。
その2:ファイル名を 月日時の表示にしたい。若しくは送信されたファイル名のままにしたい。
よろしくお願いします。
設置URLのユーザー、パスワード共にsampleです。
- Re:ファイルの保存場所を限定するには
- 2010-11-08 (月) 03:31:10 投稿者 和田 www.synck.comごめんなちゃい。さすがにそれ以上はソースを普通に書くことになっちゃうんでご勘弁ください。フォルダの指定は普通にディレクトリパスを指定すればOKですが、そのままのファイル名だとサーバ側のOSによって適切に保存されません。日付を入れるのであればlocaltimeを使えば入れれます。あとは頑張って調べてみてください。
- ファイルの保存場所を限定するには
- 2010-11-09 (火) 09:53:26 投稿者 francie doll.naoichigo.com/sample/和田様
そうですよね、ソースを書いて頂いてしまう事になってしまいますものね・・・
リクエストばかりぶつけて、無知ゆえに失礼致しました。
頂いたヒントは、現時点では??ですが調べて頑張ってみます。ありがとうございました。