将文本写入服务器上的文本文件

时间:2017-03-14 06:16:06

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

我试图从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"); 
}

好像我做错了什么,

  

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

不确定如何使用Server.MapPath

它位于参考中,System.Web不是System.Web.dll,不确定,但必须相同,并且使用System.Web;

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

2 个答案:

答案 0 :(得分:1)

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

使用以下内容下载文件:

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

然后使用

在修改后(如果需要)将其写入本地
File.WriteAllBytes(savefilePath, filearray);

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

答案 1 :(得分:0)

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

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

如果您想要自己的修改副本,那么您可以下载它并按照Sadiq的建议将其保存在本地Winform应用程序中。您也可以再次上传文件,服务器端必须允许此操作。