3

我在本地系统上动态创建 html 文件(使用 HTMLTEXTWRITER,然后使用 streamwriter 将它们保存到本地文件系统)。我想通过我们的用户交互将此文件复制到我的远程服务器,以便我的用户可以读取文件。我用 C#

例如我想从 d:\myfile.html 复制到 mysite.com\myfile.html,我该怎么做?

4

5 回答 5

2

我已经使用了它并且它有效。可能有用

用于保持本地路径

rPath = "\\" & Request.UserHostAddress & "\c$\temp\"

用于输出文件

rOutput = Session.SessionID & "_" & Format(Date.Now(), "ddMMyyhhmmss") & ".pdf"

现在:将在 localhost\c\temp 中创建报告

于 2012-10-18T03:47:49.157 回答
1

您不能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 选项:http: //msdn.microsoft.com/en-us/library/ms229718

于 2012-07-10T06:15:15.197 回答
1

您可以设置 FTP 服务器并通过 FTP 以编程方式复制文件。可以在此处此处找到示例。

于 2012-07-10T06:22:58.713 回答
1

您可以通过三种方式将文件复制到远程服务器。

  1. 使用普通文件复制模式。在这里,您需要有权访问网络服务器共享路径。如果网络服务器与您的应用程序在同一个网络中,那么您可以共享 webroot 并为运行应用程序的用户提供写入权限。然后他可以使用File.Copy("source.txt", "\\Servername\SharedFolderName\target.txt").

  2. 第二种方法是使用 FTP 将文件复制到远程服务器。这个 MSDN 示例将帮助您了解如何执行此操作。这将适用于大多数共享托管服务提供商。

  3. 您可以使用Tim所指出的 HTTP POST 。但这会让任何用户执行帖子。您可能需要处理用户配置、身份验证和授权。IMO,将此作为配置用户和提供特定路径权限的最后选项,可能会变得很麻烦。

于 2012-07-10T06:29:00.897 回答
1

您是基于 Windows 的远程服务器,并且与您的工作机器在同一个工作组或域中吗?如果是这样,您可以打开服务器上的 Windows 文件共享。然后你可以像这样用 cmd 复制你的文件:

复制 c:\test.txt \\mysite.com

File.Copy 在 C# 中使用的路径“\\mysite.com”也有效。

否则,您需要在服务器上设置 FTP 环境并使用 C# 中的 FTP 相关 API。

于 2012-07-10T06:29:53.190 回答