- 締切済み
ローカルファイルをサーバーから指定するには?
はじめまして ローカルに置いているxmlファイルを解析するcgi を作成中ですが、フォームでローカルファイルのディレクトリを絶対パスで書いてもらい、それを変数に渡してOpen しようとすると、 died で開くことができません。。フォームで記入してもらったデータはデコードして、C:\sample.txt のように変換できたところまでは確認したのですが、なぜかopenするところで、died で終了してしまいます。 何か方法があるのではと、探していたのですが、見つからず、こちらに相談することにしました。 どうぞよろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- rentahero
- ベストアンサー率53% (182/342)
まず。ローカルのファイルをサーバーがopenするということはありえません。そんなことできたらウィルスでもトロイでも置き放題になってしまいます。ということで、まず原理より。 inputタグで、type="file"にすると、ファイルを指定するダイアログをあけることができます。これは、画面上では絶対パスを表示しますが、実際にはファイルをPOSTでアップロードします。cgiが受け取ったら、デコードすれば受け取ったファイルを再現できます。 ローカルのファイルをcgiをつかって取得するプログラムはよくあります。例えば画像アップロード型の掲示板などがそうです。 なんとかやってみたいということであれば、あなたの使っている言語と同じ(たとえばperlならperlのもの)言語で書かれている、画像アップロード掲示板のスクリプトを探してみてください。結構いろいろと公開されています。 がんばってください。 参考URLには<input type="file">についての説明のページを入れておきます。
- anmochi
- ベストアンサー率65% (1332/2045)
???? ファイルアップロードでやってる? それとも、ひょっとしてファイル名をサーバに渡してる? ローカルにあるファイルの「ファイル名」をサーバに送っても、それはサーバでは「オープン」できんやんね。記入された絶対パスではサーバにはそのファイルが存在しないし。サーバは、ローカルの「ファイル名」じゃなくて、「ファイルの中身」が欲しいんだから。 ファイルはどっちにあるの? ローカル? サーバ? ローカル側にのみ存在するファイルをサーバで開く事は絶対にできん。
お礼
お礼を忘れておりました。 早速にお返事いただき、ありがとうございます。 とても助かりました。
補足
ファイルはローカル側のみです。 やはりそうでしたか・・・そうですよね、サーバーはどこのCドライブか分かりませんものね。。 何か特別な方法があるのでは、、と思ったのですが、、 サーバーのあるディレクトリへ一度転送してもらって、というこで解決しようと思います。