• ベストアンサー

ファイルの取り込みの件

CSVの取り込み機能を作成しています。 サーバーのフォルダ(C:/TEST/)にファイルを置いて下記の処理を行っているところで、自分のPCのフォルダから取り込むようにするにはどうすればいいでしょうか。 //コンピュータ名/C:/TEST/でやってみましたがエラーとなってしまいます。 strFolderName = "C:/TEST/" FileName = データ.csv strPath = strFolderName & FileName Set strmFile = objFile.OpenTextFile(strPath, 1, FALSE)

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

  • ベストアンサー
回答No.4

基本がなっちょらーーーーーん と思う。 > サーバーでWebアプリケーションが動いています。 詳細を求む。 ASP なのですか? > ご指導いただいたようにパスは正しく設定したと思っています。 > サーバー側のエクスプローラーのネットワークドライブ割り当て > を行いファイルにアクセスできることを確認しました。 詳細を求む。 サーバー機から見て、 他の PC の共有フォルダーを、サーバー機にネットワーク ドライブとして割り当てたってことですよね。 なら ASP のスクリプトがそのドライブにアクセスすることはできないと思っていいでしょう。 説明します。 ネットワーク ドライブへ割り当てたのは誰でしょうか。 あなた、または Administrator とかのアカウントですよね、たぶん。 ネットワーク ドライブの設定ってのはユーザーごとの設定なんです。 あなたのアカウントで Z ドライブを作成したんだったら、他のユーザーでサーバー機にログオンしても Z ドライブなんて存在してないんです。 ASP という機能をサーバー上で実行するのも実は特殊なユーザーです。 そのユーザーでサーバー機に実際にログオンしたことはないはずです。 ASP を実行する特殊なユーザーから見て Z ドライブなんて存在してないんです。 だから失敗してます。 ネットワーク ドライブはあきらめてください。 素直に 「データーを作成するユーザーが、CSVfファイルをサーバーにアップロードする」 という流れにした方が良いと思います。

pin3891227
質問者

お礼

とほほです。 勉強不足で情けないです。 ASPのWEBアプリです。 ご指導いただいたように「データーを作成するユーザーが、CSVfファイルをサーバーにアップロードする」というのが通常の処理と考えていいでしょうか。 良く見るCSVインポートという機能はサーバーの所定のフォルダにファイルをアップロードし、それをトリガにしてサーバー側でサーバーの所定フォルダのファイルを処理するということですね。

その他の回答 (4)

回答No.5

またしても新しい情報がでてきてしまい、何をやりたいのかがわからなくなりました。 「トリガー」という言葉を使いましたね。 私はてっきり、下記のようなページを作りたいのかと思っていました。 「ページのリクエストがあるたびに、特定の場所にある CSV の中身を表示 (多少加工するでしょうが) するページ」 これは間違っていますか? 「データー作成者がサーバーの特定の場所に CSV をアップロードしたら、サーバー側のプログラムが CSV ファイルを (何かに) 取りこむ」 という処理をしたいのですか? これは ASP.NET の Web アプリケーションというよりは、サーバー上に常駐しているサービス プログラムという感じがしますが。

pin3891227
質問者

お礼

「データー作成者がサーバーの特定の場所に CSV をアップロードしたら、サーバー側のプログラムが CSV ファイルを (何かに) 取りこむ」 処理を実現したいです。 何名かの方に貴重なお時間をいただきアドバイスをいただきましたが、 私の勉強不足のためにちゃんとした説明ができず、ご迷惑をおかけしますので一旦本件を完了させます。 自分の勉強不足を痛感しました。 ご協力いただいたかたありがとうございました。

回答No.3

サーバー上で動かすスクリプトで、ユーザーの PC にある csv ファイルを開いて処理をするようにしたい。 ユーザーの PC にある csv ファイルのパスをどう記述したらよいかわからない。 てこと? strFolderName = "ユーザーの PC 上の共有フォルダーへの UNC パス" ユーザーの PC 名が "hostA" で、共有フォルダー名が "share" なら strFolderName = "\\hostA\share" サーバー上でスクリプトを実行するユーザーがこの共有フォルダーへアクセスできる権限をもっていなければならない。

pin3891227
質問者

お礼

ご指導ありがとうございます。 ご指導いただいたようにパスは正しく設定したと思っています。 サーバー側のエクスプローラーのネットワークドライブ割り当て を行いファイルにアクセスできることを確認しました。 しかしながら、スクリプトを実行すると”ページを表示できません” となってしまいます。 初心者で的外れなことをしているのかもしれませんが何か設定が足りないのでしょうか。

回答No.2

サーバーの管理者権限を持っていて、サーバーが管理共有(ドライブルートの共有)を有効にしているのであれば \\コンピュータ名\c$\TEST\ というパスが使えるには使えます。が、お勧めしません。 #1さんの仰るとおり、まずはファイル共有に関する勉強をされたほうがといと思います。

pin3891227
質問者

お礼

前提条件を話ししていなくて申し訳ありません。 サーバーでWebアプリケーションが動いています。 ユーザーが所定のCSVフォーマットで作成したファイルを ユーザーのPCからインポートできるようにしたいです。 strFolderName = "C:/TEST/" FileName = データ.csv strPath = strFolderName & FileName Set strmFile = objFile.OpenTextFile(strPath, 1, FALSE) とすることでサーバーのC:/TEST/のフォルダにデータ.csvを置くと DB更新まで出来るようにしておりますので、安直に"C:/TEST/"を ユーザーのPCの所定のフォルダを指定すればインポートできる のかなぁと思った次第です。

  • jun88ken
  • ベストアンサー率62% (15/24)
回答No.1

ん-、サーバとクライアント(自分のPC)やネットワークなどを勉強したほうが 良いかと思うのですが、なぜ故、自分のPC(クライアント)からサーバにある ファイルをアクセスするのに「//コンピュータ名/C:/TEST/」となるのかが 分からないのですが・・・。 まず、サーバにあるTESTフォルダは共有にして、ネットワーク参照可能に しましょう。(C:\TEST\をTESTという共有名などで) それをすることで \\ServerName\TEST\ として参照することが出来ると 思います。

関連するQ&A