• javaWeb开发中关于eclipse等ide重新部署或重启项目等原因造成上传文件丢失问题解决方案


    在开发项目时,有时候需要用到上传功能,比如头像上传等,其文件会保存到服务器中。但是我发现在用eclipse做项目的过程中,每次重新部署项目,原来上传的文件就会丢失。

    其原因是因为每次项目修改后,eclipse会把我们放在工作空间workspace中的这个项目拷贝到服务器下(如tomcat的webapps目录下)。因为之前上传的文件都存在之前的部署的项目里,所以新部署的项目会直接把原项目覆盖掉。原来上传的文件就都没有了。


    解决方案一:

    在tomcat服务器的webapps下单独建立一个专门存放资源文件的文件夹(xxx)

    在项目里上传文件上传到此文件夹里就可以了。

            要请求文件可以直接用http://localhost:8081/xxx/xxxxx.jpg


    解决方案二:

          用虚拟路径的方式配置一个空项目。在涉及上传的时候直接把文件写到这个配置了虚拟路径的项目里,最终文件会保存到虚拟路径对应的物理盘符

    上。如果是tomcat服务器,在tomcat的server.xml里面配置。但是在实际操作过程中,发现server.xml也会被重写。是因为eclipse工作空间中存在一个

    叫Servers的项目,它里面有一个叫server.xml的文件,在部署项目时,它会把这个文件覆盖掉tomcat服务器中。所以,我们可以把如下配置迁移到

    eclipse下的Servers项目下进行。

    位置如下截图:


    配置在HOST下

    <Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true"xmlValidation="false" xmlNamespaceAware="false">
    <!-- 虚拟路径配置 -->
    < Context docBase="D://objimgs//upload" path="/objimgs"/>
    </Host>


    请求http://www.***.com/objimags/文件名.jpg的时候,会自动到D://objimgs//upload目录下找相关文件

    参考:http://bbs.csdn.net/topics/391868478

  • 相关阅读:
    C# decimal保留指定的小数位数,不四舍五入
    C# :实现水印与图片合成,并利用Graphics 压缩图像质量 , (委托实现listBox的动态添加提示)
    手机游戏模拟器汇总 用于开发
    WinAPI 操作串口
    C#图片压缩算法
    SQL SERVER 2008 无法启动TSQL调试的解决方法
    C#放缩、截取、合并图片并生成高质量新图的类
    C#图片处理之: 另存为压缩质量可自己控制的JPEG
    URL及short URL短网址
    1的补码及2的补码
  • 原文地址:https://www.cnblogs.com/chenny3/p/10226230.html
Copyright © 2020-2023  润新知