みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

ファイル選択ダイアログで選択したファイルのパス

下記のような2つのスクリプト間で、bbs.php側のtype=file 属性の要素で表示した
ファイル選択ダイアログから選択したファイルのパス(絶対パス、相対パス)は、どこからどうやって、取得すればいいのかがわかりません。(ファイル名は取得できるのですが。)
どうぞよろしくお願いします。

『bbs.php』

※ファイルオープンダイアログの表示(POSTメソッド)

<tr>
<td><b>画像を添付</b></td>
<td>
<input type="file" name="ID_PHOTO_LOAD" tabindex="6">
</td>
</tr>


※bbs.php自身に送ったPOST変数を、file_upload.phpにクエリーとして、ジャンプする

$photo = $_POST['ID_PHOTO_LOAD']; // 添付画像ファイル名
if(isset($photo)) header("Location: http://5247423.raindrop.jp/tsukushinbo/bbs/file_upload.php?photo=$photo");

------------------------------------------------------------------------------
『file_upload.php』

<?php
$photo = $_GET['photo'];

////////////////////////////////////
// ローカル側でファイルをオープン //
////////////////////////////////////
// ローカルのアップロード画像ファイルをリードモードでオープン(ファイルの終端まで進むと読み込みが終了する。
$parent = dirname($photo); // ファイル選択ダイアログで選択した画像ファイルが存在する親ディレクトリのパスを取得
chdir($parent); // 画像ファイルの親ディレクトリが、ローカルのカレントディレクトリになった
$filename = "$photo"; // $parent(親ディレクトリの直下のファイルだから、何もつけなくてよい)
$fp=fopen($filename, 'rb') or die; ←『ここでファイルオープンエラーが出ます』

投稿日時 - 2014-04-21 02:38:50

QNo.8562805

すぐに回答ほしいです

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

http://www.php-labo.net/tutorial/php/upload.html
この辺が参考になると思いますが、

パスなんてありません。
そもそも、PHPが見ているのは、「サーバー側のパス」であり
送ったのは、「ローカルクライアント側のパス」なので、
まったく違う世界のパスになりますので。
パスがあっても無意味です。

もし、PHPにc:\windows\....って来たとしても、
PHPからユーザーのHDDを読むわけではなく
POSTにマルチパート形式で実体がくっついてくるのを読むだけですよ。

投稿日時 - 2014-04-21 07:37:18

お礼

ご回答、ありがとうございました。

投稿日時 - 2014-04-21 08:03:34

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問