• ベストアンサー

ローカルファイルの操作

フォームページ上でローカルマシンのフォルダ(c:\test\)を指定して、そのフォルダにあるファイル(テキストファイルのみ)をホームページ上に展開します。 更に展開された内容をホームページ上で修正して上書き保存したいのですが、そういうことってできますか。 dir関数とかを使ってローカルフォルダを指定するとエラーになってしまうんです。 failed to open dir: No such file or directory in ・・・

  • PHP
  • 回答数2
  • ありがとう数2

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

  • ベストアンサー
  • tanshio2
  • ベストアンサー率54% (20/37)
回答No.2

これってPHPでの質問の話ですよね? であれば(もちろん?)できますよ。 WindowsのGUIの「ファイルを開く」といったダイアログを出して・・ といったことを想定されているのであればそれはもちろん「無理」ですが。 (これはPHPの使い方をそもそも間違ってますが。あ、でも無理ではないですね。 JavaScriptなりCOMオブジェクトなりでできるかもしれませんがそれはPHPとは 関係ありません) dir関数でfaied to openとなるのは パーミッションが無い Windows(ですよね?)でのディレクトリ指定方法が間違ってる ではないですか? あくまでもPHPでブラウザを通じて、ってことであれば opendirしてreaddirでファイルリストを表示。 ファイルを指定されたら、そのファイルをopenして ブラウザに表示。それを編集したら、再度ファイルをopenして fputsでファイルを上書き。 全く問題ありません。 但しANo.1の方が言うように「セキュリティ」だけは気をつけてください。

sloloworld
質問者

お礼

ありがとうございます。 windowsなんですが、ディレクトリの指定方法は具体的にどういうふうにすればよいのですか。

その他の回答 (1)

  • php504
  • ベストアンサー率42% (926/2160)
回答No.1

それが出来ると他人のパソコンの中のファイルを自由に読み書きできることになり非常に危険ですね。 当然そのようなことは出来ません。 ファイルをサーバに送ってサーバ上で取り扱うしかありません。

sloloworld
質問者

お礼

ありがとうございました。 そうですか、残念です。

関連するQ&A

  • tar(*.tgz)ファイルの解凍の際に「ディレクトリは状態を展開でき

    tar(*.tgz)ファイルの解凍の際に「ディレクトリは状態を展開できるようになる前に名前を変更されました」というエラーが出ます。 Linuxマシンでのバックアップをtarファイルにしました(20GB)。そして、そのtarファイルを、Win7マシンに接続しているUSBハードディスク(NTFS)にコピーして展開しました。ただし、展開の際には、win7上にVMwareをインストールして、仮想マシンとしてubuntsuを走らせ、ファイルの共有でUSBハードディスクを読み書きしています。その際、以下のようなエラーが出て終了しました。 ------------------------- tar: AAA/BBB/dir1/dir2: ディレクトリは状態を展開できるようになる前に名前を変更されました tar: AAA/BBB/dir1: ディレクトリは状態を展開できるようになる前に名前を変更されました tar: AAA/BBB/dir3: ディレクトリは状態を展開できるようになる前に名前を変更されました tar: AAA/BBB: ディレクトリは状態を展開できるようになる前に名前を変更されました tar: 前のエラーにより失敗ステータスで終了します -------------------------- 調べたところ、 AAA/BBB/dir1/dir2とAAA/BBB/dir3の中には、Linuxマシン上での他の場所に向けてシンボリックリンクファイルがあることがわかりました。 tarは、シンボリックリンクは無視すると思っていたのですが、このようなエラーがシンボリックリンクが原因で出ることがありえますか?それとも、他の原因でしょうか?

  • CygwinでNo such file or directory!?

    CygwinでNo such file or directory!? Cygwin上zshシェルスクリプト実行時に「#!/usr/bin/zsh: No such file or directory」と表示される現象の解決方法を探しています。 kamuycikapです。 Windows7にCygwinをインストール、zshを動作させる設定を行いました。 こんなスクリプトを作成し、実行したところ.... -- ここから #!/usr/bin/zsh USB_DIR="/cygdrive/g" TARGET_DIR="/cygdrive/g/busi" echo "USBマウントポジション Gドライブを確認します。" if [ -d $USB_DIR ] then echo "USBメモリのBUSIフォルダを確認します。" if [ -d $TARGET_DIR ] then echo "busiフォルダ以下をD:\workに上書きコピーします。" if cp -far /cygdrive/g/busi /cygdrive/d/work/ then echo "上書きコピー終了です。" else echo "上書きコピーに失敗しました。" fi else echo "USBメモリのBUSIフォルダを確認できませんでした。" fi else echo "USBマウントポジション Gドライブを確認できませんでした。" fi --ここまで こんな結果になってしまいます。 --ここから /home/Admin/bin/busicpy_usb: line 1: ?#!/usr/bin/zsh: No such file or directory USBマウントポジション Gドライブを確認します。 USBメモリのBUSIフォルダを確認します。 busiフォルダ以下をD:\workに上書きコピーします。 上書きコピー終了です。 --ここまで cygwinプロンプト上にて「which zsh」を実行すると HITACHI-PC% which zsh /home/Admin/program/zsh /usr/bin/zsh と返事が返ってきます。 これどういうことでしょうか?? スクリプトは動作している様子ですが、いまいち気持ち悪いです。 識者の方、ご教示願います。 <PS> Windows7の環境変数「path」には、cygwinをインストールしたフォルダのbinディレクトリパスを追加しております。 私の場合D:\cygwinにインストールしたのでd:\cygwin\binを追加しています。

  • unlinkでどうしてもファイルが削除できない!!

    お世話になります。 いろいろとネットで情報を探しているのですが、どうしても解決しません。 ローカルなapacheのサーバにファイルをアップロードし、指定のファイルを削除するプログラムを作成しています。 プログラムファイルのあるディレクトリの下に"files"というディレクトリがあり、その下に、アップロードした日付でディレクトリ(例:"200511171010")をプログラム側で作成し、その下にファイルをアップロードするものです。 編集するプログラムで、選択したファイルを削除するというものです。 サーバは、Windows2000,MySQL,Apacheです。プログラムはEUCで書かれています。 ・フォルダを作成するプログラム $uniq = $dir_y.$dir_m.$dir_d.$dir_h.$dir_i; $uploaddir = "./files/$uniq/"; //ファイルのアップロード処理 if($_FILES['file1']['name'] != ""){ mkdir("$uploaddir"); $ufile[1] = $_FILES['file1']['name']; $ufile[1] = str_replace("'","’","$ufile[1]"); $uploadfile = $uploaddir.$ufile[1]; move_uploaded_file($_FILES['file1']['tmp_name'],mb_convert_encoding($uploadfile, "SJIS", "EUC-JP")); } ・ファイルを削除する部分 $rslt = unlink("./files/$uniq/$t[$i]"); です。 エラーは、 Warning: unlink(./files/20051115195407/購入書籍.xls) [function.unlink]: No such file or directory in C:\Program Files\Apache Group\Apache2\htdocs\shuchi\edit_ok.php on line 103 です。ファイル自体はあるのですが、削除されていません。 パーミッションとかも、フォルダを作成するときとか、いろいろいじってみたのですが解決しませんでした。 何かわかれば是非、教えてください。すみませんがよろしくお願いいたします。

    • ベストアンサー
    • PHP
  • includeでのローカルファイルの呼び出しについて

    いろいろやってみて原因が全くわからなかったので、わかる方はご回答願えますと幸いです。 PHPでランダムで文字を表示するスクリプトを作り、下記のように設置して問題なく表示出来ていました。(右の数字はパーミッションです) /home(755) │└index.php(644) /random(755)  ├random.php(644)  └random.txt(606) random.phpでrondom.txt内のデータをランダムに取り出して表示させ、その内容をindex.phpに <? include("http://xxxxx.xxx/random/random.php");?> と呼び出しを行っていました。 しかしサーバー管理者に外部ファイルの呼び出しは高負荷がかかるのでローカルからの呼び出しに変更してほしいと連絡を受け、 <? include("./random/random.php");?> のように修正を行ったところ、以下のようなエラー文が吐き出されてしまいました。 Warning: file(random.txt) [function.file]: failed to open stream: No such file or directory in /xxxxxxxx/random/random.php on line 2 このエラーの回避方法についてご存じの方がいたらご教授願えればと思います。

    • ベストアンサー
    • PHP
  • ローカルファイルをサーバーから指定するには?

    はじめまして ローカルに置いているxmlファイルを解析するcgi を作成中ですが、フォームでローカルファイルのディレクトリを絶対パスで書いてもらい、それを変数に渡してOpen しようとすると、 died で開くことができません。。フォームで記入してもらったデータはデコードして、C:\sample.txt のように変換できたところまでは確認したのですが、なぜかopenするところで、died で終了してしまいます。 何か方法があるのではと、探していたのですが、見つからず、こちらに相談することにしました。 どうぞよろしくお願いします。

    • 締切済み
    • CGI
  • Tortoise SVNでのファイルをアップデートする方法が分かりません。。。

    Tortoise SVNを初めて使用してるのですが 新規ファイルをサーバにUPしたあと、修正ファイルの上書きが出来ないのです。 具体的に手順を説明すると ローカル作業環境で作業 ↓ ここでの対象ファイルを差分として ローカルの別の差分用のフォルダに移動 ↓ 上記のディレクトリに入れたファイルを SVNのあるサーバにUP(この時普通にドラッグでUPしてます。) ※新規でUPするのでここでは問題なし ↓ ローカルの作業環境で再び修正 ↓ ここで再び修正した対象ファイルを差分として 別の差分用のフォルダに移動 ↓ 再度、差分用フォルダからSVNのあるサーバにUP (ここでも普通にドラッグしてます。) で、この時ラーがでます。 内容としては 「既に同一のファイルがあります。」的な内容で上書きできないのです。 当然、他の人も使っているため ファイルをUP or削除するたびに全員にメールが送信されてしまうので テストができず、上書きする方法が試せないのです。 色々サイトを見てるんですが、いまいち分からず かと言って、自分がテストする度にメールが回ってしまうのは迷惑になるし 混乱を招く為なんとかここでお力を借りたいと思いご質問させていただきました。 すみませんがよろしくお願いします。

  • session_startが使えない???

    session_start();を使うと このようなエラーが出ます。 failed: No such file or directory sampleから取ってきても同じようになります。 何か解決方法はないでしょうか?よろしくお願いします。

    • ベストアンサー
    • PHP
  • require_once()でファイルが読み込めません

    すいません、色々やったみたのですがよく分からなかったので教えてください。 PHPのテンプレートのSmartyを使いたいと思い、公式サイトからダウンロードして/usr/local/lib/php/Smartyにコピーしました。 その後、php.iniのinclude_pathにて".:/usr/local/lib/php/Smarty"と設定し、require_once("Smarty.class.php");としたのですが、 failed to open stream: No such file or directoryや Failed opening required 'Smarty.class.php' というエラーが出て読み込めません。また、phpinfo()を見る限りではphp.iniはきちんと読みにいっているようでした。 ためしに/usr/にSmartyを置き、include_pathもそのように変更してみたのですが読み込めません。カレントディレクトリに配置した場合は上手く読み込めました。また、Smartyでなくてもどのファイルでも読み込めない状況です。 環境はFedora6、Apache2.0、PHP5です。何かアドバイスよろしくお願いします。

    • ベストアンサー
    • PHP
  • FTPサーバーから受信したファイル一覧からファイル名だけを取得したいです

    こんばんは。いつもお世話になっております。 VB.NET+WinXPなのですが、 FTPサーバーにログインして、 LISTコマンドでファイル一覧を要求すると 「drwxrwxr-x 2 53 53 4096 Feb 28 2006 abc」 などというファイルやフォルダの一覧がかえって来ると思うのですが、 この中からファイル名やフォルダ名だけを取得するには どうしたらよいでしょうか。 TABやコンマが入っていないので、文字列関数で切り取るにも 区切りがわからないと思うのです。 ローカルドライブのDir関数なら、FileAttribute.Nomalや.Directoryの指定でファイル名だけや ディレクトリー名だけを指定して 取得することが出来るのですが、FTPサーバーの場合からの場合はどういった方法があるでしょうか。 参考程度でも構いませんので教えて頂けるとたすかります。m(__)m

  • HTMLでファイルリンクしたときに困っています

    xampp2.5で、簡単なホームページを作成しています。 そこで作成したとあるhtmlページにて ネットワーク上の共有フォルダへ、リンクを貼っています。 具体的な記述は下記です。 <a href="aaa/test.xls">指定ファイルへリンク</a><br /> 直接フォルダを開いて、元のexcelファイルを修正して上書き保存したあとは、 htmlページから飛んだ開いたファイルも その修正されたファイルが表示されるようにしたいのですが、 なぜか、修正されるまえの古いファイルが開かれてしまいます。 どのようにすれば、htmlのリンクからも常に最新のファイルが開かれるように なるのでしょうか? よろしくご教授お願いいたします。

専門家に質問してみよう