ローカル システムで html ファイルを動的に作成しています (HTMLTEXTWRITER を使用してから、ストリームライターを使用してローカル ファイル システムに保存します)。ユーザーがファイルを読み取れるように、ユーザーの操作でこのファイルをリモート サーバーにコピーしたいと考えています。私はC#を使用しています
たとえば、d:\myfile.html から mysite.com\myfile.html にコピーしたいのですが、どうすればよいですか?
私はこれを使用しましたが、うまくいきました。役に立つかもしれません
ローカルのパスを保持するため
rPath = "\\" & Request.UserHostAddress & "\c$\temp\"
出力ファイル用
rOutput = Session.SessionID & "_" & Format(Date.Now(), "ddMMyyhhmmss") & ".pdf"
現在: レポートは localhost\c\temp に作成されます
ファイルをリモートサーバーにコピーする方法は3つあります。
通常のファイルコピーモードを使用します。ここでは、Webサーバーの共有パスにアクセスできる必要があります。Webサーバーがアプリケーションと同じネットワーク内にある場合は、Webルートを共有し、アプリケーションを実行しているユーザーに書き込みアクセスを提供できます。その後、彼はを使用できますFile.Copy("source.txt", "\\Servername\SharedFolderName\target.txt")
。
2番目のアプローチは、FTPを使用してファイルをリモートサーバーにコピーすることです。このMSDNの例は、これを行う方法について役立ちます。これは、ほとんどの共有ホスティングプロバイダーで機能します。
Timが指摘したように、HTTPPOSTを使用できます。ただし、これにより、すべてのユーザーが投稿を実行できるようになります。ユーザーのプロビジョニング、認証、および承認を行う必要がある場合があります。IMOは、ユーザーのプロビジョニングと特定のパスへの権限の提供が面倒になる可能性があるため、これを最後のオプションとして保持します。
Windowsに基づいており、作業マシンと同じワークグループまたはドメインにあるリモートサーバーですか?その場合は、サーバーでWindowsファイル共有をオンにすることができます。次に、次のようにcmdを使用してファイルをコピーできます。
c:\ test.txt\\mysite.comをコピーします
パス「\\mysite.com」は、C#のFile.Copyでも使用できます。
それ以外の場合は、サーバーにFTP環境をセットアップし、C#でFTP関連のAPIを使用する必要があります。
このためにクラスを使用することはできませんがSystem.IO
(ネットワーク ドライブとしてリモート サーバーにアクセスできない場合) System.Net
、.
WebRequest
クラスを使用したスニペットを次に示します。
WebRequest request = WebRequest.Create( url );
request.Timeout = 1000; // some appropriate value
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = 0; // set a length here
using( StreamWriter requestStream = new StreamWriter( request.GetRequestStream(), System.Text.Encoding.UTF8) ) {
// write to the stream here using requestStream.Write();
requestStream.Close();
}
HTTP の詳細: http://msdn.microsoft.com/en-us/library/debx8sh9.aspx
または、コードで実行するのがそれほど難しくない、FTP (またはより安全なもの) などのファイル転送用に設計されたプロトコルを使用することもできます。
FTP サーバーをセットアップし、FTP を介してプログラムでファイルをコピーできます。例はhereまたはhere にあります。