【问题标题】:Rooted Path and FileUpload Control根路径和文件上传控制
【发布时间】:2020-10-14 15:46:43
【问题描述】:

我知道有人问过这个问题,而且我已经阅读了这些帖子并在 Google 上搜索了一整天。仍然离有用的东西还差得很远。使用 .aspx 页面,我需要将 .pdf 文件上传到特定网站。我正在使用 VS2017 和 VB.Net 进行开发。该应用程序将在不同的网站上运行。它需要将客户端文件上传到特定的不同网站和路径。此外,上传文件的文件名将与本地源文件的文件名不同。创建新名称没问题。

假设本地文件必须上传到https://www.appfileserver.co.za/pdfdocs 的网站,但我在https://www.myownsite.com。因此,当使用 FileUpload1.SaveAs(rootedpath) 时,其中的路径必须是目标的 rooted path。对于我提供的示例,根路径会是什么样子?

仅供参考,我知道 IP 地址、http 路径以及我需要知道的任何其他信息,因为我控制着这些网站。做一个FTP上传会很棒。我已经从桌面应用程序中多次这样做了。不幸的是,我需要本地文件的完整路径。似乎没有办法允许网页获取完整路径,所以 FTP 上传已经结束 - 或者有没有办法?

【问题讨论】:

  • 您可以上传到“myownsite.com”,然后该服务器可以上传到“otherserver.com”。
  • 太棒了。在发表我的帖子后发现了这一点,然后对其进行了测试 - 成功。这样做我可以将正确的 FTP 上传到目标路径。谢谢你。
  • 仅供参考,我上面的评论是错误的。是的,它适用于我的 IIS,但不适用于实时站点。您不能从一个网站到另一个网站通过 FTP 上传。我在下面的答案中发布了正确的解决方案。像魅力一样工作。

标签: asp.net vb.net


【解决方案1】:

经过两天的斗争,试图从一个网站到另一个网站的 FTP 上传(这是不可能的,因为服务器防火墙阻止了这个),我终于解决了。解决方案很简单。我在目标服务器上部署了上传的 .aspx 文件,然后将其嵌入到客户端计算机应用程序的 iframe 中。然后将文件一次性上传到正确的位置。简单且 100% 有效。希望有人看到并理解它 - 以避免我遇到的麻烦。

【讨论】:

  • 这里的关键概念?使用基于 Web 的 URL 时,这是路径的外部表示。但是当您编写代码时,您可以 100% 忽略外部路径名,使用 mapath,您现在拥有一个 vb.net 内部路径名,就像您在台式计算机上编写的任何代码一样。事实上,vb 代码可以保存文件,或在该服务器上的任何位置获取/获取/使用文件名——这些路径名与外部 URL 有很大关系。这也意味着带有 pdfs 的文件夹不必公开为用户可以输入的有效 URL,以获取他们不应该输入的其他 pdf。
  • 外部 URL,包括经常使用的“虚拟”文件夹,可以映射到特定文件夹。对于 URL,您会看到网站的文件夹。一旦你开始在后面运行代码?然后代码中的路径名是完全有效的服务器路径名,与 url 几乎没有关系。当然,从外部 URL 路径到内部的转换是使用 mappath 完成的。因此,请记住通过 Web URL(必须使用 URL)获取文件的标记代码与始终使用完整有效 Windows 路径名的代码之间的巨大差异。一旦做出这种区分,那么一切都有意义
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-04-09
  • 2010-09-20
  • 2010-12-31
  • 2012-04-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多