dポイントプレゼントキャンペーン実施中!

質問内容はタイトルの通りなのですが、ASPでの開発を行っているのですが、実現したい事は下記のようなことを実現したいと思っています。

<input type="File">で指定したローカルファイルを、ASPプログラムが動いているサーバー側のフォルダにコピーしたいです。


FileSystemObjectのCopyFileでは、ローカルのパス情報を指定してもエラーになってしまいます。

質問がわかりにくいかと思いますが、知識をお持ちの方いらっしゃいましたら教えていただけますようよろしくお願いします。

A 回答 (3件)

用語としては、「コピー」ではなく「アップロード」といいます。


ASP.NETであれば、
http://msdn.microsoft.com/ja-jp/library/cc671434 …
のサイトが参考になると思います。

この回答への補足

説明不足で申し訳ありません。

使用しているのはASPという言語のようで、ASP.NETとは違う?ようです;

補足日時:2009/03/17 17:58
    • good
    • 0

ASPはもう何年も使っていませんが、当時はファイルアップロードには参考URLにあるBASP21というフリーのコンポーネントをもっぱら使っていました。



これを使わないでアップロードをやるとなると私には皆目見当もつきませんが、No.2さんの回答で初めて知りました。勉強になりました。

参考URL:http://www.hi-ho.ne.jp/babaq/basp21.html
    • good
    • 0

ASPでファイルのアップロードを受け取るなら


Scriptsフォルダー内の cpshost.dllを使って受け取ることになると思います

フォームのアクションに(わざと httpを ttpにしています)
ttp://localhost/Scripts/cpshost.dll?PUBLISH?ttp://localhost/SampleSite06/Sample2.asp

inputタグのHIDDEN名前(name)をTaregetURLにして valueを書き込み先

としておいてファイルをアップロードします

IISマネージャにて TargetURLの書き込みを Onにしておきます

アクションに設定した ?PUBLISH?以降のURLがアップロードされた後に表示されるページです

こちらのページで
dim sFileName, sPath, fso
sFileName = Request.Form("FileName") + Request.Form("FileExtention")
sPath = Request.From("FilePath")
といった具合に ファイル名やファイルパスを取得します
これをつかって
set fso = Server.CreateObject("Scripting.FileSystemObject")
fso.MoveFile sPath & sFileName, "C:\Work\data\" & sFileName
Set fso = nothing
といった具合に アップロードされたファイルを移動させたりしましょう

匿名アクセスが可能なページですと実行ユーザーが『IUSER_サーバー名』という特殊なユーザーになるので
TargetURLのフォルダーや MoveToの移動先などの権限設定をしておきましょう

『ファイルのアップロード: Posting Acceptor、Part 1、2』
http://msdn.microsoft.com/ja-jp/library/dd313981 …
http://msdn.microsoft.com/ja-jp/library/dd313982 …
などを参照してみてください
    • good
    • 0

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