【问题标题】:why is folder created in server and not local PC为什么在服务器而不是本地PC中创建文件夹
【发布时间】:2014-06-26 01:34:11
【问题描述】:

我有一个 ASP.net 网站,如果本地驱动器中不存在该文件夹,我将在页面加载时创建一个文件夹:

string strDirectory = @"C:\PDFGenerate\";
try
        {
            if (!Directory.Exists(strDirectory))
            {
                Directory.CreateDirectory(strDirectory);
            }
        }
        catch (Exception ce)
        {
            tc.Text = "Unable to create directory to save generated PDF files";
        }

该网站目前托管在我的本地服务器中。我将该网站添加到我的 IIS,以便我可以从我们网络中的任何 PC 本地访问它。

我遇到的问题是每当我从本地 PC 访问该网站时,该文件夹是在服务器中创建的,而不是在我的 PC 中。

这与访问有关吗?我尝试在我自己的本地驱动器中创建一个文件夹,效果很好。

【问题讨论】:

  • 网站无法在客户端 PC 上创建文件夹。想象一下,如果他们可以的话会发生什么。
  • hmmmmm... 有一点。但是该网站是在我们的网络中本地托管的。解决方法是什么?
  • 应用程序正在服务器上运行。因此,如果您告诉它将某些内容保存到 c 驱动器,它就会这样做 - 将其保存到它的 c 驱动器。
  • @SiKni8 没关系 - 代码仍然在服务器上运行。
  • 你不会有更多的 JavaScript 运气。一个更好的主意是在服务器上生成 pdf,然后给用户一个链接以将它们下载到他们的本地机器。由于它在本地托管,也许保存到共享驱动器也可以。

标签: c# asp.net


【解决方案1】:

我遇到的问题是每当我从本地 PC 访问该网站时,该文件夹是在服务器中创建的,而不是在我的 PC 中。

是的。那是因为您的所有代码都在服务器上执行。服务器只是将 HTML 传送到您的 PC,Web 浏览器显示 HTML。当然,如果其中包含一些 Javascript,that 将在 PC 上(在浏览器中)运行 - 但 C# 在服务器上运行。 (想一想:您如何期望 C# 代码在没有任何运行 .NET 工具的机器上运行?)

了解您的代码在哪里运行非常非常。作为 Web 应用程序创建者,您无法在客户端计算机上创建文件夹。您对本地(即客户端)存储的访问权限非常有限,但您将无法执行任意文件系统操作。那将是非常不安全的。

【讨论】:

  • 现在说得通了。谢谢。
  • OP 表明该站点正在他们自己的网络上运行。因此,如果服务器可以访问用户的计算机(例如,服务器可以将文件保存到\\SiKni8\C$\PDFGenerate),他可以通过共享或类似方式将 PDF 保存到用户的计算机。一般来说,我会认为这是一个可怕的想法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-09-07
  • 1970-01-01
  • 2013-07-24
  • 2015-07-22
  • 1970-01-01
  • 2016-09-26
  • 1970-01-01
相关资源
最近更新 更多