javaEE 非项目目录下的资源文件如何访问

xuhesheng 2020-06-17 02:12:06
正常情况下,D:/ABCD是我的tomcat下一个叫做ABCD的项目的主目录
D:/ABCD/a.jpg这个资源文件,可以通过http://IP:PORT/ABCD/a.jpg来访问
那D:/ABCD目录以外的文件如何被访问呢?
我要让别人能够访问我这个服务器上其他位置的文件.例如播放视频,播放音频等.
那么前端后端要如何进行具体处理可以播放视频音频?
或者告知这种跨目录访问的技术叫什么名字?
...全文
4904 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_39936465 2020-07-20
  • 打赏
  • 举报
回复
引用 3 楼 xuhesheng 的回复:
[quote=引用 2 楼 如此美丽的你 的回复:] springboot

@Configuration
public class WebMvcConfig extends WebMvcConfigurerAdapter{

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/ABCD/**").addResourceLocations("file:D:\\ABCD\\");
    }
}
registry.addResourceHandler("/D/**").addResourceLocations("file:D:/"); 这是我实际使用的代码 http://IP:PORT/ABCD/D/BX.jpg 却不能访问,404错误. 但是我D:/BX.jpg是真实存在的. 这个是为什么[/quote] 根据实际情况修改一下不就好了 registry.addResourceHandler("/ABCD/D/**").addResourceLocations("file:D:/");
vswen5 2020-06-23
  • 打赏
  • 举报
回复
1.配置tomcat 给一个静态资源地址 2.代码读取文件返回数据
qq_39936465 2020-06-22
  • 打赏
  • 举报
回复
引用 12 楼 xuhesheng 的回复:
[quote=引用 11 楼 qq_39936465 的回复:] 配置有个 *.jpg 的拦截器,启动实现类,用实现类调用该jpg
这种配置和@Configuration的没有区别,注解能用的,配置文件也是同种配置的不同方式而已. 但是不能动态定义目录,这个跟我的需求不符. [/quote] 我晕了,你可以在拦截器的实例类中用get方法获取url,然后自己截取需要的字段。我估计这种方法安全性有问题,所以框架里可能不会提供。
maradona1984 2020-06-22
  • 打赏
  • 举报
回复
懒人的话,直接手写也可以
xuhesheng 2020-06-22
  • 打赏
  • 举报
回复
引用 11 楼 qq_39936465 的回复:
配置有个 *.jpg 的拦截器,启动实现类,用实现类调用该jpg
这种配置和@Configuration的没有区别,注解能用的,配置文件也是同种配置的不同方式而已. 但是不能动态定义目录,这个跟我的需求不符.
qq_39936465 2020-06-19
  • 打赏
  • 举报
回复
配置有个 *.jpg 的拦截器,启动实现类,用实现类调用该jpg
qq_39936465 2020-06-19
  • 打赏
  • 举报
回复
引用 8 楼 xuhesheng 的回复:
[quote=引用 6 楼 qq_39936465 的回复:] 可以在页面上设置资源文件的链接,点链接转到文件。
你这个适合下载这种功能.但是我现在是用户在看到我这个视频或者图片的时候,能够点击查看图片或播放视频. 所以我就希望能直接生成链接或者去配置映射信息.这样,我就能直接交给浏览器去处理了.而不是我手动去输出一个流给img的src用[/quote] 可以在项目中添加本地资源映射,然后调用。
xuhesheng 2020-06-19
  • 打赏
  • 举报
回复
引用 7 楼 如此美丽的你 的回复:
1.去除内嵌tomcat <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <!-- 去除内嵌tomcat --> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency> 2.排除springboot配置 @SpringBootApplication public class MyApp extends SpringBootServletInitializer { public static void main(String[] args) { SpringApplication.run(MyApp.class,args); } @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(MyApp.class); } } 3.看下你的配置类是否加了@configuration注解
我直接用的springmvc而不是boot 注解肯定是写了. 但是还是不能访问.........我最希望用这种搭配映射的方法使用本地的文件. 但是未能成功.一直是404
xuhesheng 2020-06-19
  • 打赏
  • 举报
回复
引用 6 楼 qq_39936465 的回复:
可以在页面上设置资源文件的链接,点链接转到文件。
你这个适合下载这种功能.但是我现在是用户在看到我这个视频或者图片的时候,能够点击查看图片或播放视频. 所以我就希望能直接生成链接或者去配置映射信息.这样,我就能直接交给浏览器去处理了.而不是我手动去输出一个流给img的src用
qq_39936465 2020-06-18
  • 打赏
  • 举报
回复
引用 5 楼 xuhesheng 的回复:
我把资源设定的这段代码写在ABCD这个项目里,是想通过URL的方式访问其他盘符下的资源. 而且不就应该是写在ABCD这个项目里么?我这个是tomcat,直接http://IP:PORT/D/BX.jpg,这个路径肯定找不到啊.因为没有D这个项目啊.
可以在页面上设置资源文件的链接,点链接转到文件。
xuhesheng 2020-06-18
  • 打赏
  • 举报
回复
引用 4 楼 qq_39936465 的回复:
[quote=引用 3 楼 xuhesheng 的回复:] registry.addResourceHandler("/D/**").addResourceLocations("file:D:/"); 这是我实际使用的代码 http://IP:PORT/ABCD/D/BX.jpg 却不能访问,404错误. 但是我D:/BX.jpg是真实存在的. 这个是为什么
http://IP:PORT/ABCD/D/BX.jpg http://ip 这是网络地址 port 这里是端口号 /abcd 是项目文件夹 你这里已经到项目文件夹了,后面接D盘符怎么可能找到? [/quote] 我把资源设定的这段代码写在ABCD这个项目里,是想通过URL的方式访问其他盘符下的资源. 而且不就应该是写在ABCD这个项目里么?我这个是tomcat,直接http://IP:PORT/D/BX.jpg,这个路径肯定找不到啊.因为没有D这个项目啊.
qq_39936465 2020-06-18
  • 打赏
  • 举报
回复
引用 3 楼 xuhesheng 的回复:
registry.addResourceHandler("/D/**").addResourceLocations("file:D:/"); 这是我实际使用的代码 http://IP:PORT/ABCD/D/BX.jpg 却不能访问,404错误. 但是我D:/BX.jpg是真实存在的. 这个是为什么
http://IP:PORT/ABCD/D/BX.jpg http://ip 这是网络地址 port 这里是端口号 /abcd 是项目文件夹 你这里已经到项目文件夹了,后面接D盘符怎么可能找到?
xuhesheng 2020-06-18
  • 打赏
  • 举报
回复
引用 2 楼 如此美丽的你 的回复:
springboot

@Configuration
public class WebMvcConfig extends WebMvcConfigurerAdapter{

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/ABCD/**").addResourceLocations("file:D:\\ABCD\\");
    }
}
registry.addResourceHandler("/D/**").addResourceLocations("file:D:/"); 这是我实际使用的代码 http://IP:PORT/ABCD/D/BX.jpg 却不能访问,404错误. 但是我D:/BX.jpg是真实存在的. 这个是为什么
如此美丽的你 2020-06-18
  • 打赏
  • 举报
回复
引用 4 楼 qq_39936465 的回复:
[quote=引用 3 楼 xuhesheng 的回复:]
registry.addResourceHandler("/D/**").addResourceLocations("file:D:/");
这是我实际使用的代码
http://IP:PORT/ABCD/D/BX.jpg
却不能访问,404错误.
但是我D:/BX.jpg是真实存在的.
这个是为什么


http://IP:PORT/ABCD/D/BX.jpg

http://ip
这是网络地址

port 这里是端口号

/abcd 是项目文件夹

你这里已经到项目文件夹了,后面接D盘符怎么可能找到?

[/quote]
1.去除内嵌tomcat
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!-- 去除内嵌tomcat -->
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>

</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>



2.排除springboot配置
@SpringBootApplication
public class MyApp extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(MyApp.class,args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(MyApp.class);
}
}

3.看下你的配置类是否加了@configuration注解
如此美丽的你 2020-06-17
  • 打赏
  • 举报
回复
springboot

@Configuration
public class WebMvcConfig extends WebMvcConfigurerAdapter{

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/ABCD/**").addResourceLocations("file:D:\\ABCD\\");
    }
}
  • 打赏
  • 举报
回复
把你的文件路径在你的应用服务保存。当有人访问某个文件时,你的应用服务去正确的路径下读取这个文件,返回给访问者。

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧