• ベストアンサー

ローカルにある画像ファイルをサーバー側にコピーしたいのですが

質問内容はタイトルの通りなのですが、ASPでの開発を行っているのですが、実現したい事は下記のようなことを実現したいと思っています。 <input type="File">で指定したローカルファイルを、ASPプログラムが動いているサーバー側のフォルダにコピーしたいです。 FileSystemObjectのCopyFileでは、ローカルのパス情報を指定してもエラーになってしまいます。 質問がわかりにくいかと思いますが、知識をお持ちの方いらっしゃいましたら教えていただけますようよろしくお願いします。

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

  • ベストアンサー
  • kokorone
  • ベストアンサー率38% (417/1093)
回答No.1

用語としては、「コピー」ではなく「アップロード」といいます。 ASP.NETであれば、 http://msdn.microsoft.com/ja-jp/library/cc671434.aspx のサイトが参考になると思います。

urubou2008
質問者

補足

説明不足で申し訳ありません。 使用しているのはASPという言語のようで、ASP.NETとは違う?ようです;

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • garikuma
  • ベストアンサー率66% (2/3)
回答No.3

ASPはもう何年も使っていませんが、当時はファイルアップロードには参考URLにあるBASP21というフリーのコンポーネントをもっぱら使っていました。 これを使わないでアップロードをやるとなると私には皆目見当もつきませんが、No.2さんの回答で初めて知りました。勉強になりました。

参考URL:
http://www.hi-ho.ne.jp/babaq/basp21.html
全文を見る
すると、全ての回答が全文表示されます。
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.2

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.aspx http://msdn.microsoft.com/ja-jp/library/dd313982.aspx などを参照してみてください

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • クライアントPCからファイルのアップロード

    ASPでファイルをアップロードするシステムを作っています。 クライントPCにあるファイル(<Input type=file>タグを使ってファイルのパスを取得)を、サーバーPCの指定したフォルダへコピーしたいです。 FileSystemObjectを使って、このような処理は可能でしょうか? Set objFileSys = CreateObject("Scripting.FileSystemObject") objFileSys.CopyFile "C:TEST\ABC.txt","D:TEST\" 現在、このような記述をしたところサーバーPCの"C:TEST\ABC.txt"をサーバーPCの"D:TEST\"へコピーするだけになってしまいます。 やりたいことはクライアントPCの"C:TEST\ABC.txt"をサーバーPCの"D:TEST\"へコピーです。 なにか良い方法がありましたら教えてください。

  • 他のサイトのファイルを開きたい

    PHPのプログラムをASP上で動くVBScriptに移植しています。 PHPではfile関数を使うと指定したURLのファイルを取得できますが、ASPでは同様のことはできるでしょうか? CreateObjectでFileSystemObjectを生成してやってみたのですが、FileSystemObjectはUNCパスのみでURLには対応していないようでした。

  • ASPでWEBサーバと別サーバのパス取得とオブジェクト操作

    ASPプログラミングの「FileSystemObject」でWEBサーバ(IISのサーバ)のパスの取得とFolderオブジェクトの操作をしています。 別サーバのパス取得やオブジェクト操作は可能でしょか? 自分で別サーバのネットワークパスを指定して実行したらエラーになってしまったので実現可能かどうか知りたいと思います。 もし可能ならサンプルのソースなどで教えていただけると幸いです。 何分、素人なのでお手数をかけますが宜しくお願い致します。

  • VBSで作成したフォルダにファイルをコピー出来ない

    いつもお世話になっております。 表題に関してなのですが、VBSでFileSystemObjectを利用してフォルダを作り、 そのフォルダにファイルをコピーするという内容のスクリプトを作成しています。 ですが、フォルダは無事に出来るのですが、ファイルをコピーしようとすると、 「書き込み出来ません」 と出て、コピーされません。 fso.CopyFileのところで、エラーが発生してるようです。 CopyFileメソッドの代わりにCopyコマンドで実行するように記述すると 問題なくコピーされます。 解決方法等ございましたら、ご教授ねがいます。

  • 他PCへのファイルコピー

    お世話になります。 Webからファイルアップロードしたいのですが、 ファイルサーバーがWebサーバーとは別になっています。 IISで仮想ディレクトリには設定したのですが、 うまくアップできません。 で、ローカルディレクトリにファイルをアップしてから ファイルコピーしようとしたのですが、 やはりできません。 Set objFSO = Server.CreateObject("Scripting.FileSystemObject") objFSO.CopyFile "C:\test\aaa.txt", "\\server1\c:\temp\aaa.txt",True マシンserver1のtempフォルダをネットワークドライブZにしてみて objFSO.CopyFile "C:\test\aaa.txt", "z:\temp\aaa.txt",True としてみてもダメでした。 どうすればアップできるでしょうか? なにか権限の問題でもあるのでしょうか?

  • UNCパスでファイルをコピーしたい

    VisualBasic.NET 2003で開発をしています。 同一ネットワーク内の他サーバよりUNCパスを使用してファイルを ローカル→サーバ、サーバ→ローカルにコピーしようとしているの ですが、うまく参照できません。 CopyFileAPIを使用しようとしたのですが、これではUNCパスが 参照できないようです。 UNCパスを使用して相互にコピーできる方法はないのでしょうか。 ちなみに、諸事情により、ネットワークドライブとして接続する ことはNGです。 (これができればCopyFileAPIでコピーできるのですが・・・)

  • ASPを使ってサーバ側のバッチを起動する方法

    Windows Server 2003 Standard EditionにIISをたて、ASP.NETを有効にしています。 (1)クライアントPCからローカルのファイルをサーバに転送 (2)転送後、サーバ上のバッチファイルを起動 上記のシステムを構築したいです。 (1)はASP.NETを使えば簡単に実現できるらしいことは分かったのですが、(2)がどうもよく分かりません。 いろいろとサイトを回ってみたのですがそれらしい記述も見当たりませんでした。 ASPでの開発も初心者なので困っています。 よろしくお願いします。

  • サーバカレント配下サブフォルダ内にファイルをアップさせたいのですが…

    ブラウザからローカルのファイルを指定して、実行ボタンを押すとサーバに、指定したファイルがアップされるプログラムを作成中です。 『copy($file, $file_name);』で、サーバにアップされるところまでは出来たのですが、このソース(.php)が存在するカレントに、ファイルがアップされてしまいます。 カレント配下に作成してあるサブフォルダ内にアップさせるには、どうすれば良いでしょうか? (もしくは、カレントにアップされたファイルを配下サブフォルダに移動でも良いですが) <以下PHPソースの抜粋> ~~~~~~~~~~~8<~~~~~~~~~~~~8<~~~~~~~~~~~ <TD nowrap><FONT size="-1">ファイル file</FONT></TD> <TD nowrap> <INPUT TYPE="hidden" NAME="MAX_FILE_SIZE" SIZE="65536"> <INPUT TYPE="file" NAME="file" SIZE="42"> </TD> ~~~~~~~~~~~8<~~~~~~~~~~~~8<~~~~~~~~~~~ <TD nowrap><INPUT id=submit1 NAME=submit1 type=submit value=" 実 行 "></TD> ~~~~~~~~~~~8<~~~~~~~~~~~~8<~~~~~~~~~~~ if ($file_name != '' && $file_size != 0) { copy($file, $file_name); } ~~~~~~~~~~~8<~~~~~~~~~~~~8<~~~~~~~~~~~

    • ベストアンサー
    • PHP
  • PHPでWindowsのローカルドライブに書き込みたい

    PHP初心者ですが、PHPのファイル操作で質問があります。 サーバー上にあるファイルをWindowsのクライアントのフォルダに保存したいのですが、サーバーの作業ディレクトリに保存されてしまいます。 以下のようなテストプログラムで実験しています。(エラー処理は省略) $server_file_data=file_get_contents('server.dat'); $local_file = 'd:\\temp\\local.dat'; $cfp = fopen($local_file, "wb"); fwrite($cfp,$server_file_data); fclose($cfp); このPHPを走らせるとサーバーのカレントフォルダ上に d:\temp\local.datが作成されます。 Windows用のパスまでがファイル名に入っちゃってます。 ローカルのドライブにPHPが書き込むという動作がセキュリティ上望ましくないことは理解していますが、ここでは技術的な解決策をどなたかご教授できるでしょうか? よろしくお願いします。

    • ベストアンサー
    • PHP
  • フォルダのコピー

    こんにちわ。takaoPRと申します。 今、指定したフォルダから指定したフォルダへのコピーをするプログラムを作成しているのですが、思う処理ができずに、困っています。 最初、FileSystemObjectのCopyFolderを使用したところ、読取専用ファイルのコピー時にエラーが出るので、 Win32APIの、「SHFileOperation」を使用しましたが、フォルダの上書きと読取専用ファイルの上書きで確認ダイアログが表示されてしまいます。 実現したい処理は、何のメッセージも出さずに(重複ファイルは勝手に上書きします)フォルダごとコピーをしたいのですが、実現する方法はないのでしょうか? 申し訳ありませんが、みなさまのお知恵をお借りできれば嬉しいです。宜しくお願い致します。