画像などを受付フォームを使ってメールに添付できるプログラムをPHPで作っています。

今、悩んでいるのは確認画面などを作って画像を確認出来るような仕組みを考えています。
出来れば良いなぁと思っているのは、
ファイルを参照する際に出てくる画像のパソコン内部のパスを確認画面に持って行き<a target="_blank">などを使って確認できればよいなと考えています。
テスクトップのロゴだったら、
C:\Documents and Settings\テスト\デスクトップ\ロゴ.gif
の様なパスを取得したいのですが何か方法は有りませんか?

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2006/04/03 15:49:36
  • 終了:2006/04/04 17:54:52

回答(3件)

id:naka-ji No.1

naka-ji回答回数11ベストアンサー獲得回数02006/04/03 16:06:05

http://www.futomi.com/library/mpmailec.html

これなんてどーでしょう。

フリーも版あるようですが、画像の添付が出来たかどうか。

id:kuippa No.2

くいっぱ回答回数1030ベストアンサー獲得回数132006/04/03 16:25:45

ポイント40pt

パソコン内部というのはユーザーのパソコンの内部ということでしょうか???


サーバー側にファイルを送る前に確認させたいということであれば、

<input type="file" name="upfile">

なりで、ファイルを選択させた後に、そこで選択されたファイルを画面に表示させたいのであれば、upfileにローカルのパス+ファイル名が格納されているのでonChangeイベントあたりのjsでupfileのvalueなりを取得してaタグのhrefを書き換えてやればでできそうです。

http://www.openspc2.org/JavaScript/ref/event/onChange.htm




PHPでやるとなると、サーバーサイドになってしまうので、

一度サーバーにファイルをあげた後ということになります。

$tmp = $_FILES['upfile']['tmp_name'];

で、サーバー内部のファイル名を取得できるので、これを確認画面表示時することになります。



質問文からだと、前者を実装されたいという要望に感じますが、前者だと、ユーザーのローカルにあるファイルを表示するだけで、画像アップロードが正常に終わったという確認にはならないような気がします。


確認画面のみでユーザのローカルパスを取得したいのであれば、onSubmitのタイミングで、hidden textなどに、ローカルパスの値を受け渡してやるなどの方法も考えることはできますが、ファイルアップロードで失敗するという点を考えれば、ユーザー側のどのファイルを選ぶかという操作性と確実性を担保するのはOSにまかせて、きちんとファイルアップロードができましたよという通信結果を担保してあげたほうがいいかと思います。


webプログラムがActiveXなどユーザのローカルファイル選択にまで操作性を広げた時代もありましたが、セキュリティの問題からこれは時流ではないのかなと・・・。

id:black_kenchan

$tmp = $_FILES['upfile']['tmp_name'];

で画像を表示する場合はどのようにするのですか?

2006/04/03 16:37:09
id:kuippa No.3

くいっぱ回答回数1030ベストアンサー獲得回数132006/04/03 18:29:32

ポイント40pt

二回目の回答です。


通常、multipart/form-dataで送られたデータはtmp以下に格納されます。html領域外ですのでいったん、public_html下のユーザが参照可能な領域ににコピーします。


http://www.sakura-pc.jp/php/gd.shtml

http://www.mdn.co.jp/webcre/PHP/Vol26/


このようにworkファイルとしてコピーしたものを表示するということになります。



問題点もあり、これでアップされたデータはtmpに格納されているファイルと異なりセッションが切れても破棄されないので、ごみデータの削除の一文を入れておいたほうがいいかもしれません。

http://php.s3.to/bbs/bbs3.php

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません