我正在使用 JDeveloper 11.1.2.3.0。我想获取文件的 URL 并将其用作另一个属性的输入。我使用了 inputFile 但我无法直接从那里获取 URL。
我必须构建一个 managedBean 吗?
任何人都可以帮助我了解如何做到这一点吗?
我正在使用 JDeveloper 11.1.2.3.0。我想获取文件的 URL 并将其用作另一个属性的输入。我使用了 inputFile 但我无法直接从那里获取 URL。
我必须构建一个 managedBean 吗?
任何人都可以帮助我了解如何做到这一点吗?
如何获取上传文件的 URL
这不是它的工作方式。
当用户上传文件时,作为服务器的您将获得文件内容作为最重要的信息。您不会获得该文件的 URL,这没有意义(客户端不运行网络服务器左右)。最多您将获得文件名作为附加信息,并且在存在安全漏洞(例如 IE<10)的古老浏览器中,您还会获得完整的客户端磁盘文件系统路径,但这些信息对您来说完全没有价值。您最终会得到文件内容和文件名。
在检索到文件内容和文件名后,您应该自己将其保存在服务器的磁盘文件系统或 SQL 数据库中,具体取决于您所追求的可搜索性、可维护性和可移植性程度。如果您打算能够在客户端的另一个 HTTP 请求中返回这个上传的文件,那么您还应该确保该特定文件之后可以通过一个完整的 URL 获得。
有几种方法可以在之后通过 URL 使保存的上传文件可用。您可以在存储上传文件的文件夹上创建一个虚拟主机。或者,如果无法创建虚拟主机,或者当您打算对提供文件有更多控制权时,那么您可以创建一个自定义 servlet。请注意,您绝对不应该将上传的图像存储在部署文件夹中getRealPath()
。