zoukankan      html  css  js  c++  java
  • 【转】关于web项目中的图片上传、并在前端显示问题(tomcat中配置文件上传虚拟路径)

    一、数据库存储

      直接把图片的二进制码存到数据库,可参考blog:http://blog.csdn.net/hope2jiang/article/details/590733

      直接存图片在mysql上面有两点好处:

        1.比较容易做取重,就是相同的图片只存一份.

        2.最重要备份使用数据库的备份方式简单.

        3.容易管理,去掉无用的图片等.

      缺点:

        1.不适合超大量存储,数据的存储越大,恢复越麻烦

        2.当然一般还是需要前端做更多的物理缓存,而不是靠mysql来直接输出.

      还是看需求,如果图片是小图片,像论坛使用的,并且需要注重他的优点的可以使用,至于量没有具体的,你要想想如果数据库遇到问题,

      它的重做和迁移是否方便的问题.其实如果不是特殊情况一般存在数据库里都不是好的选择.平衡他的优缺点.

    二、webRoot下存储

      利用上床组件把图片上传到web项目下,再存储图片的相对路径到数据库表中,需生成一个新的不会重复的图片名

      缺点:显而易见重新部署项目前需要重新把已上传的图片备份,待部署成功后拷贝到web项目下

    三、web项目外存储

      顾名思义,把图片上传到web目录外

      1.建立存放图片的目录和web项目下一目录之间的联系

        例如:①Linux系统下,首先把图片上传到项目外一目录;

        ②然后把此目录挂载到项目内某一目录下mount --bind 实际存放图片目录项目内某一目录;

        ③然后把上传图片的相对路径存储到数据库表中;

        ④最后在项目中直接访问这个URL获取图片。

      注意:第一存放图片的目录需有上传权限;

        第二在重新部署时,undeploy前先解除挂载umount 实际存放图片目录项目内某一目录;

        待项目上传成功后再重新建立挂载,否则在undeploy时可能丢失已上传的图片。

      缺点:每次部署前后要进行挂载,解挂载操作,易误操作丢失资源

      2.配置虚拟路径

      例如使用tomcat时:

        首先把图片上传到项目外一目录下;然后在tomcat中配置一个虚拟路径指向上传目录命名为  "/fileUpload"  (在/conf/server.xml下配置Context即可);

        然后把上传图片的相对路径存储到数据库表中,再在程序中通过访问这个虚拟路径 "/fileUpload" + 数据库中存储的相对URL 来获取文件资源;

        (其实相当于在tomcat下重新启动了一个web项目,然后通过访问此web项目下的图片资源,

        这样其实也可以通过 http://ip:port/webProject/ resourse)。

      解决:可以使用tomcat的配置文件将某个请求映射到物理路径下 ,完成图片的回显。

      例子:

      1.修改tomcat的配置文件(window环境)

        首先找到tomcat目录下conf目录下的server.xml文件,在server.xml文件中找到<Host></Host>;

        然后在其中加上这<Context path="/uploadfile" docBase="D:Fileimager"></Context>

      如:

    复制代码
    <Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true">
      <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log." 
        suffix
    =".txt" pattern="%h %l %u %t &quot;%r&quot; %s %b" />   <!-- 下面两条主要是tomcat转发图片请求到相应的电脑物理磁盘位置 -->   <Context path="/uploadfile" docBase="D:Fileimager"></Context> </Host>
    复制代码

      tomcat在的请求一般为:http://localhost:8080/uploadfile/abc.jpg。配置完重启之后,该请求自动跳转到物理路径D:Fileimager下查找。会访问本机的D:Fileimagerabc.jpg。

      注意:在启动完tomcat后会报路径“D:Fileimager”找不到的bug,这是因为:tomcat不会自动帮您创建相关的文件路径,

    需要我们自己先创建好相应的文件路径。

     

    转载:https://www.cnblogs.com/lojun/p/7859923.html

  • 相关阅读:
    校门外的树
    年龄与疾病
    数组逆序重放
    计算书费
    陶陶摘苹果
    与指定数字相同的数的个数
    上学路线
    NOIP2011 普及組 統計單詞數
    [HAOI2012]音量调节
    [USACO11JAN]利润Profits
  • 原文地址:https://www.cnblogs.com/day1day1up/p/11264909.html
Copyright © 2011-2022 走看看