请问图片上传一般是传到什么地方?项目源文件 还是 项目的部署目录?

单曲循环shield 发布于 2016/08/30 19:54
阅读 2K+
收藏 0

请问图片上传一般是传到什么地方?项目源文件 还是 项目的部署目录?

1、传到项目的源文件目录下 需要 路径硬编码,即(D:/img)。这种方式好像不推荐。。

2、传到项目的部署目录下的话如果服务器重启图片什么的就都清空了。。

所以现在好纠结该写在什么地方

加载中
0
红薯官方
红薯官方

/contextPath/staticFiles/file/aaa.jpg

contextPath=上下文

staticFiles是一个控制器

file 是一个action方法

aaa.jpg是一个存储的文件名

那么aaa.jpg放服务器上面那里呢,你自己可以按需设计,比如d:\storage\projectName\aaa.jpg

设计上传文件管理Service,处理文件存储读写。

控制器负责提供http请求服务。

0
f0rb
f0rb
在项目外建个文件夹,然后项目目录下做软连接
0
0
xpbob
xpbob
你如果有空余的机器,就搭建一个图片服务器,把压力转到那台机器上,有jersey这些第三方组件
0
听风的小猪
听风的小猪

图片上传一般上传到项目文件里面

1、传到项目的源文件里面,你可以写相对路径,例如 media/photo 目录这种格式,而media目录在你项目里面。

2、重启服务器图片并不会清空,你说的应该是部署下一个版本的话,图片会被清空,这种情况,你可以在部署的时候,在项目外建立一个目录,然后和项目内的media目录建立软连接。这样,目录实际存储内容就在项目外了。

0
jdk2010
jdk2010
上传七牛这种
0
fxhover
fxhover
资源文件最好跟项目目录区分开,做好权限控制,用nginx配置静态资源服务器。
0
老飞的天空
老飞的天空
nginx 图片服务器;在项目外很好用
0
levis999
levis999

上面说的都可以实现,简单说下:

1.附件或者图片建议不要存放在项目目录里,单独存放,后续做附件拷贝,或者整个web服务器拷贝,而不需要拷贝里面大量的附件。

2.附件可以和应用方一个服务器,也可以放不同的服务器,取决你是否有多余的机器。放同一个服务器,只有文件目录可以让tomcat有写的权限即可。放不同的服务器,需要做到文件夹的共享,有很多实现方式,例如:nfs等,做好权限。

3.附件存放的目录,用一个web服务器,例如nginx,指向火来,即可访问。

4.数据库中存放相对路径。比如:文件存在/data/a/b.txt  数据库只存/a/b.txt。web服务器nginx在做location时,增加/a比配规则即可。

5.存放七牛,阿里云等服务器,可以有cdn服务,但是多了一个上传动作。

返回顶部
顶部