Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用angular和Spring MVC为静态图像提供服务?_Angular_Spring Boot - Fatal编程技术网

如何使用angular和Spring MVC为静态图像提供服务?

如何使用angular和Spring MVC为静态图像提供服务?,angular,spring-boot,Angular,Spring Boot,现在我创建了文件上传组件,并将上传的文件保存在硬盘中的物理路径中。现在,当我在新选项卡中用右键单击打开图像时,如果我想以角度提供此图像,那么如何使用此相对路径?它应该转换为localhost/端口号/图像路径 在应用程序属性中使用配置我正在尝试在配置中使用外部URL,但我不知道应该在该URL中设置什么,我需要做什么更改来提供图像。如果硬盘路径位于Web服务器的文档根目录内,则可以使用相对于文档根目录的URL直接访问它 例如: 硬盘中的文档根目录是/var/www/examplesite,您已将文

现在我创建了文件上传组件,并将上传的文件保存在硬盘中的物理路径中。现在,当我在新选项卡中用右键单击打开图像时,如果我想以角度提供此图像,那么如何使用此相对路径?它应该转换为localhost/端口号/图像路径


在应用程序属性中使用配置我正在尝试在配置中使用外部URL,但我不知道应该在该URL中设置什么,我需要做什么更改来提供图像。

如果硬盘路径位于Web服务器的文档根目录内,则可以使用相对于文档根目录的URL直接访问它

例如: 硬盘中的文档根目录是
/var/www/examplesite
,您已将文件
theimage.jpg
上载到
/var/www/examplesite/uploads
,然后以
http://example.com/uploads/theimage.jpg

如果您在文档根目录之外上传了文件,那么您需要实现一种机制,从文件的位置读取文件,并从应用程序服务器或servlet容器提供服务

查看本教程,它将向您展示如何使用SpringMVC将请求转发到WEB-INF文件夹中的资源

就是为了这样设计的。使用SpringContentFS(即文件系统的SpringContent),您可以通过定义单个接口来创建一个REST服务,该服务支持内容上的CRUD操作

为此,将以下Spring内容依赖项添加到项目中(假设为maven):-


org.springframework.boot
弹簧靴起动器
org.springframework.boot
SpringBootStarterWeb
javax.servlet
servlet api
2.3
com.github.paulcwarren
SpringContentFS启动程序
0.0.9
com.github.paulcwarren
spring内容rest启动程序
0.0.9
org.springframework.boot
弹簧起动试验
测试
在Spring Boot应用程序类中,创建一个ImageStore。这将指示Spring Content为此接口注入REST服务,从而避免您自己编写任何此代码(包括上载代码):-

@springboot应用程序
公共类演示应用程序{
公共静态void main(字符串[]args){
run(DemoApplication.class,args);
}
@StoreRestResource(path=“images”)
公共接口ImageStore扩展存储{}
}
注:顺便说一下,这项服务也支持视频流

请注意,默认情况下,SpringContentFS将在java.io.tmpdir下创建一个存储上载的图像,并且每次启动应用程序时都会获得一个新的根。因此,您还需要设置SPRING\u CONTENT\u FS\u FILESYSTEM\u ROOT环境变量,以便为您的图像提供一个稳定的根应用程序”

完成此操作后,您将能够使用如下任意路径发布(创建)、获取(读取)、放置(更新)和删除(删除)URI“/images”:-

/images/some/path/myimage.jpeg


例如,发送到该URL的帖子会将图像存储到SPRING\u CONTENT\u FS\u FILESYSTEM\u ROOT/some/path/myimage.jpeg。GET会再次检索该图像,依此类推。

是的,我刚刚上传了文件,并将其保存在项目根目录外的硬盘中的物理路径中……现在希望在projectI中为这些文件提供服务。在projectI中添加了一个教程,其中包含了该步骤s将响应转发到WEB-INF文件夹中的图像资源。我想它应该适用于服务器上的任何其他位置,但WEB-INF是放置非公共资源的地方。使用java.nio.file访问文件目录签出此链接您可以在这里找到java.nio.file如何创建目录以及如何将所有文件置于目录下使用anugular和sprint引导在UI中编辑和显示
<dependencies>
    <!-- Standard Spring Boot -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>2.3</version>
    </dependency>

    <!-- Spring Content -->
    <dependency>
        <groupId>com.github.paulcwarren</groupId>
        <artifactId>spring-content-fs-boot-starter</artifactId>
        <version>0.0.9</version>
    </dependency>
    <dependency>
        <groupId>com.github.paulcwarren</groupId>
        <artifactId>spring-content-rest-boot-starter</artifactId>
        <version>0.0.9</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>
    @SpringBootApplication 
    public class DemoApplication {

        public static void main(String[] args) {        
           SpringApplication.run(DemoApplication.class, args);  
        }

        @StoreRestResource(path="images")   
        public interface ImageStore extends Store<String> {} 
    }