将文件上传到Spark Java

问题描述 投票:0回答:1

我正在尝试创建一个包含上载文件的文件夹。 我已经看到了一些将文件保存到绝对文件夹(例如D:/ tmp或主目录)的示例。 我的问题是我试图将上传的文件放入项目文件夹中的文件夹中。 上载文件夹应包含上载的文件

我也试图使用这样的项目文件夹:

    public static String getProjectFolder(){
         return System.getProperty("user.dir")+"/";
    }

结果变成这样的东西,并且在HTML文件中找不到文件异常!

http:// localhost:1234 / Users / USER_NAME / Documents / java / PROJECT_NAME / upload / genres / action.jpg

将文件夹添加到项目中的最佳方法是什么? 还是应该使用硬编码文件夹?

java web spark-java
1个回答
1
投票

您需要使用staticFiles.externalLocation()将要上传文件的文件夹设置为静态文件文件夹

客户端可以访问的唯一文件夹(用于从中获取内容或上传内容)是使用静态文件位置API staticFiles.externalLocation()设置的文件夹。 您还可以在此处查看示例。

在本地运行服务器时,将其定义为:

staticFiles.externalLocation(System.getProperty("user.dir") + "/src/main/resources");

这是关于您的问题。


您可能会遇到问题。 因为现在您可能有两个要公开的位置:

  • 资源文件夹(包含所有JavaScript,CSS等。通常为/src/main/resources
  • 上载文件夹(让用户上载文件)

将这两个位置都放在同一位置并不是一个好习惯。 我设法通过在公用文件夹内创建一个称为files的符号链接来解决该问题。

abcmbp:resources abc$ pwd
/Users/abc/dev/wspace/proj1/src/main/resources

abcmbp:resources abc$ ls -l files
lrwxr-xr-x  1 abc  staff  27 Mar  3 21:20 files -> /Users/abc/appUploadFolder/

然后,在上载路径的发布句柄中,我将此文件夹指定为目的地,这样我就可以将资源和上载的文件分开。

© www.soinside.com 2019 - 2024. All rights reserved.