【问题标题】:Write text to the text file on server将文本写入服务器上的文本文件
【发布时间】:2017-08-04 08:57:33
【问题描述】:

我正在尝试从 winform 桌面应用程序将文本写入服务器上的文件

 string path = "http://www.site.info/doc.txt";

使用路径:

   System.Web.HttpContext.Current.Server.MapPath(path);

我也试过这种方式:

   System.Web.Hosting.HostingEnvironment.MapPath(path);

将文本写入文本文档:

using (StreamWriter _testData = new StreamWriter(Server.MapPath("~/doc.txt"), true))
{
    _testData.WriteLine("TEXT"); 
}

好像我做错了什么,

name Server "在当前上下文中不存在"。

不知道如何使用Server.MapPath

它在参考文献中作为System.Web 而不是System.Web.dll,不确定,但必须相同,并且在使用时作为System.Web;

我也在使用System.Net;,所以也许我可以使用WebClient

【问题讨论】:

  • 没有多少当代网站允许您直接写入网络服务器上的文件。最好提供一个 API 来执行作业服务器端。考虑研究 REST?
  • @MickyD 你好,我只想写在我的服务器上
  • 您是说WinForms 应用程序 Web 服务器都是同一台计算机??
  • @MickyD 不,它是用户计算机上的应用程序,它写入我的服务器
  • 好吧,我不明白你说的“我只想在我的服务器上写”是什么意思

标签: c# winforms server system.net system.web


【解决方案1】:

你为什么在winform desktop application 中使用Server.MapPath

使用以下方式下载文件:

WebClient webClient = new WebClient();
var filearray = webClient.DownloadData(path);

然后在修改后(如果需要)使用

将其写入本地
File.WriteAllBytes(savefilePath, filearray);

然后使用webClient.UploadData(address, filearray)上传。

【讨论】:

  • @MickyD 看到我的编辑。我提到OP应该上传文件。
  • @Sadiq 你好,这种方式可以让我从服务器上的文件读取并将值写入我的计算机上的文件,我不需要下载它来读取。我的问题是如何正确地将字符串从我的桌面 winform 应用程序写入文件到我的服务器,该服务器已经包含空文件。或者如果这种方式是错误的,我需要从我的应用程序将带有字符串的文件加载到我的服务器,不知道该怎么做
  • @nikorio - 为此,您必须编写服务器端代码。为此制作一个 Web API。
【解决方案2】:

您正在尝试修改服务器上不允许的文件,因为这可能会被滥用并损害服务器。您可以通过托管此文本文件的网站更新文件。

Server.Map 路径应在您要修改文件的网站中使用。如果文件是 asp.net web 表单网站,那么您可以制作一个 aspx 页面,该页面将为您修改文件。如果是 MVC,那么您将需要 Controller 中的 Action 方法来为您修改文件。

如果您想拥有修改后的副本,则可以按照 Sadiq 的建议将其下载并保存在本地 Winform 应用程序中。您也可以再次上传文件,您的服务器端必须允许这样做。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-06
    • 2018-01-11
    • 1970-01-01
    • 2012-04-21
    • 1970-01-01
    相关资源
    最近更新 更多