• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:写真を添付したメールで回答)

写真を添付したメールで回答するアンケート作成の方法

このQ&Aのポイント
  • 写真で回答するアンケートを作りたいが、画像が送れずに困っている
  • enctypeをmultipart/form-dataに設定すると、空のメールが送信される
  • アンケートの回答部分をメール本文、選択した写真を添付書類にしたい

質問者が選んだベストアンサー

  • ベストアンサー
  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.2

【引用】____________ここから action = uri [CT]  この属性は、フォーム処理エージェントを指定する。HTTPスキームURI以外の値の場合のユーザエージェントの動作は、定義しない。 method = get|post [CI]  この属性は、フォームデータ集合を提出する際にどちらのHTTPメソッドを用いるかを指定する。 可能な値は、大文字小文字を区別せず、「get」(デフォルト値)と「post」である。使用法については フォームの提出の項を参照のこと。 enctype = content-type [CI]  この属性は、(method属性値がpostの場合)サーバに提出する際のMIMEタイプを指定する。 デフォルト値は "application/x-www-form-urlencoded"である。 INPUT要素でtype="file"のものと組合せる場合は、この値に "multipart/form-data"を指定する必要がある。  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ここまで[Forms in HTML documents (ja)( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/interact/forms.html#h-17.3 )]より  仕様書くらいは、一度通して読んでおきましょう。  よって、かならず <form action="/cgi/mailForm.cgi" method="post" enctype="multipart/form-data">  になります。  ・デフォルトのGET(Querystring)の許容量をオーバーします。  CGI側で、画像の処理をします。Perlが使えれば、多くの場合ImageMagickないしPerlMagickが使えますので、メールで扱える範囲内にデータを縮小するなりして送信すれば良いです。  https://www.google.co.jp/?gws_rd=ssl#q=%E3%83%95%E3%82%A9%E3%83%BC%E3%83%A0%E3%83%A1%E3%83%BC%E3%83%AB+%E7%94%BB%E5%83%8F%E6%B7%BB%E4%BB%98+magick+OR+gd&safe=off

iruiru298
質問者

お礼

回答ありがとうございます。 enctype="multipart/form-data" の場合、  action="mailto:xxxx" では何も送信されない。  action="cgitest.cgi"であれば、希望したデータが送られる。 こと以下の方法で確認できました。 cgiファイルの作り方で時間がかかりお礼が遅くなりましたが、exeファイルの拡張子をcgiに修正するだけでOKなのですね。 具体的には、 action="cgitest.cgi" enctype="multipart/form-data" とし、以下のCプログラムの実行ファイル test.exe を cgitest.cgi に改名してHTMLファイルと同じフォルダに置いて、 送信ボタンを押したところ、 回答部分のテキストデータと、選択した写真のバイナリデータが受信できました。 --------------------- #include <stdio.h> #include <fcntl.h> #include <io.h> int main(void) { int c; FILE *fp; fp = fopen("temp.dat","wb"); setmode(fileno(stdin), O_BINARY); while((c=fgetc(stdin)) != EOF ) { fputc(c,fp); } fclose(fp); return 0; }

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

HTMLではきびしいと思いますよ ユーザーが手で添付するか、サーバーサイドのプログラムで処理するかの どちらかになると思います

iruiru298
質問者

お礼

回答ありがとうございます。 ユーザインタフェースは変えたくありませんので、サーバーサイドのプログラムで処理する方法を教えてほしいです。 <form name="a" method="post" action="yyyyy.cgi "  enctype="text/plain"> とすれば、action="mailto:xxxx " では送られなかった、 回答内容と、写真データがサーバーに送られ、 サーバーサイドに yyyyy.cgi を作れば可能 ということでしょうか?

関連するQ&A

専門家に質問してみよう