【问题标题】:Getting the full file path when using a file upload control使用文件上传控件时获取完整文件路径
【发布时间】:2021-07-28 14:23:47
【问题描述】:

我写了一些代码来将文件上传到亚马逊 S3,如果我手动输入完整的文件路径它成功地从我的计算机上传文件。我想要做的是使用文件上传控件并将完整路径存储在一个变量中,以便我可以将它用于我的亚马逊方法。我到处阅读,似乎出于安全原因,浏览器不会让您获得完整的文件路径。

如何获取完整的文件路径?我是否应该将文件存储在我的网络服务器上并将我的亚马逊方法指向服务器路径,然后使用文件上传控件告诉它文件名是什么?我希望我能直接对亚马逊进行射击......

【问题讨论】:

  • 您永远无法从客户端浏览器中获取路径...但我看不出这与任何方式相关。你得到文件名,所以只需构建你自己的完整路径。 IE。将所有上传的文件放在一个预定义的文件夹中。
  • @Andrew Barber,已接受道歉。
  • @Pauli,我试图不将文件保存到我的网络服务器然后构造绝对路径。我试图直接从客户那里拿到亚马逊。不幸的是,amazon api 要求一个 abs 路径。我想我必须将文件保存到我的网络服务器。我猜没什么大不了的。
  • 为什么要把它保存在网络服务器上!?如果是因为 amazon api 在上传时需要读取文件路径,那么我确定还有一个过载流!
  • @Pauli,用于此的 SDK 并不好,它们向您展示了如何创建对象(其中没有任何内容的文件,您没有现实世界的理由想要这样做),但是不是如何上传一个真实的文件,我不得不四处寻找并自己弄清楚以达到我已经做到的程度。

标签: c# asp.net file-upload


【解决方案1】:

首先我们要保存文件路径,然后我们从

string filepath=Path.GetFullPath(UploadFile1.FileName.toString());

【讨论】:

    【解决方案2】:

    我遇到了这个链接,它有一个很棒的教程,甚至给你一个工作示例项目。 (这与.net SDK包含的代码不同...)http://aws.amazon.com/articles/774?_encoding=UTF8&jiveRedirect=1

    【讨论】:

      【解决方案3】:

      我们不能在 HTML 或 JS 中采用完整路径,因为它会破坏安全性,所以每当您尝试查看路径时,它都会显示 fakepath

      所以要解决此问题,您可以创建一个单独的文件夹,并将上传的文件存储在那里,在代码中您可以将该文件夹路径作为默认路径并将其用作绝对路径。

      您可以使用 Python Tkinter 获取完整路径,但它仅限于桌面应用程序。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-03-13
        • 1970-01-01
        • 1970-01-01
        • 2013-11-24
        • 2011-04-17
        • 2016-11-26
        • 1970-01-01
        • 2013-06-29
        相关资源
        最近更新 更多