- - PR -
画像パスの取得方法
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2007-09-25 10:59
えー。 別の意味で問題アリだなぁ。 IE6だとクライアントのファイル構成がサーバ側に晒されるわけでしょう? パスはセキュリティ上の懸念から送信されないものだと思っていたけど、 今でもIE6って送信されるんですねぇ。 # 後で検証しようと思っていたら先を越されました | ||||
|
投稿日時: 2007-09-25 14:34
ベルさん、かつのりさん、nagiseさん
ご教授いただきましてありがとうございます やりたいことは、 登録画面で参照ボタンにより、画像ファイルを指定して、 確認画面で表示し登録するということがしたいのです パスの情報がなくても可能なのでしょうか よろしくご教授ください | ||||
|
投稿日時: 2007-09-25 14:45
表示というのはどういうものをイメージされてますでしょうか?確認画面に遷移した時点でファイルはアップロード済みだと思います。単に(参考としての)表示だけならフルパスでなくてもいいと思います。 #inputでtype="file"の場合は初期値指定は出来ないですよね? | ||||
|
投稿日時: 2007-09-25 14:54
確認のために画像を表示するという動作のために、
パスが仮に存在しても使えません。そもそも別の仕組みが必要です。 サーバからアップロードしたPCのフォルダが覗けると勘違いしていませんか? アップロード確認を行うためには、一旦アップロードさせます。 アップロードされたファイルは適当な一意な名前を付けて、 サーバ内のどこかに内部保存します。 表示はそのファイルをバイナリのストリームで返す手段を提供して、 <img>タグで表示させるのが常套手段です。 直接webapp以下に配置すると楽ですが、他のユーザからも当然みえます。 | ||||
|
投稿日時: 2007-09-25 15:02
IEは7から、Firefoxは2から、Operaは7.5からファイル名のみですね。
ローカルのパスがWeb上へ流れるのを防ぐセキュリティ上の配慮です。 この場合は、アップロードされてきたファイルをテンポラリに保存して表示し、OKなら本来のパスへコピーという作り方が正しいでしょう。 | ||||
|
投稿日時: 2007-09-25 15:21
スレ主さんは、
こういうコードを生成したかったんでしょうね。 確かにIE6ならファイルがあれば表示されます。 これはサーバにアップされているのではなく、 ブラウザがローカルファイルを表示しているだけなんですが。 どのみち本質的な問題解決の手法ではないので この方法は諦めた方がよいかと思います。 (IE7は知りませんが、FireFox2では表示できません。) | ||||
|
投稿日時: 2007-09-25 19:43
みなさん
ご教授いただきまして本当にありがとうございます 確認画面では一時ファイルを見る方法で対処いたします | ||||
|
投稿日時: 2008-11-20 00:45
横からすみません。
この方と同じようにファイルのアップロードをAjaxで行おうとしています。AjaxではFileオブジェクトをPOST出来ないようなので、input type="file"でどうにかフルパスを取得したいのですが、何か良い方法はありませんでしょうか? 対応ブラウザはIE6以上、FF3 & Chorome(input type="file"自体おかしいですが) & Safari3 で動作させたいのですが・・。 Javaの1.5で開発してますが、このように対象ファイルを取得しようと考えてます。 File fl = this.getFile(); if (fl == null && this.getFileFileName().length() > 0) { fl = new File(this.getFileFileName()); } if (!fl.exists()) { this.setResultMsg("ファイルが存在しません。"); } else if (fl.length() == 0) { this.setResultMsg("ファイルサイズが0バイトです。"); } 抽象パス取得で String abpath = new File(this.getFileFileName()).getAbsolutePath(); fl = new File(abpath); のようにしてもクライアントのファイルですので特定できないと思うのですが。 横からで申し訳ありませんが、よろしくお願いします。 [ メッセージ編集済み 編集者: 未記入 編集日時 2008-11-20 00:57 ] |