一回も披露したことのない豆知識

下記のような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_ …

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

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

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

A 回答 (1件)

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

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

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

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

お礼日時:2014/04/21 08:03

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報