IDEA图片上传问题

1、分析原因

这个问题是这样的,我使用的SSM框架,在上传图片时发现找不到路径。这里项目曾经在eclipse上写的,在迁移到IDEA上时,发现无法找到原来的路径。这个问题我想了一下,应该是eclipse使用tomcat启动web项目时部署的路径与IDEA启动时不同。于是我就查理一下tomcat部署方法。这里我了解到有三种部署方法。

1、war文件直接扔进webapp里面。这个方法是比较常见的了,就不多述了。server.xml中Host标签是有关于webapp的配置。

2、server.xml中配置context标签,通过context的配置,可以指定某一个web应用。

通过如下标签控制

<Context path="/A" docBase="B" />

这里代表的是虚拟路径为A,就是映射到ip:port/A, 项目的路径是B。
配置参数:

  • path:虚拟路径。
  • docBase:应用程序的物理路径。
  • workDir:这个应用的工作目录,存放运行时生成的与这个应用相关的文件。
  • debug:设定debug level, 0表示提供最少的信息,9表示提供最多的信息。
  • privileged:设置为true的时候,才允许Tomcat的Web应用使用容器内的Servlet。
  • reloadable:如果为true,则tomcat会自动检测应用程序的/WEB-INF/lib 和/WEB-INF/classes目录的变化,自动装载新的应用程序,可以在不重起tomcat的情况下改变应用程序,实现热部署。
  • ntiResourceLocking 和antiJARLocking:热部署是需要配置的参数,默认false避免更新了某个webapp,有时候Tomcat并不能把旧的webapp完全删除,通常会留下WEB-INF/lib下的某个jar包,必须关闭Tomcat才能删除,这就导致自动部署失败。设置为true,Tomcat在运行对应的webapp时,会把相应的源文件和jar文件复制到一个临时目录里。
    这里参考了这个
    原文:https://blog.csdn.net/qq_41376740/article/details/82191115

3、进入tomcat目录里面的conf/Catalina/localhost,新建一个xml文件,记住名字和path后面的要一致,是根据这个来确定项目名称的,Context标签的配置一样。

zhii’e
直接引用了原帖子的图片。这里可以清晰的看到tomcat具体把配置文件写在了哪里。
eclipse是用的在webapps下新建一个文件的方法,而idea全都新建到了target文件中配置到tomcat里。原来上传图片的路径是webapps下的相应位置,现在只要改到target中就可以了。

2 问题解决

IDEA中配置虚拟路径。
第一步,
在这里插入图片描述
第二步,
在这里插入图片描述
第三步,

String filePath = request.getSession().getServletContext().getRealPath("/static/upload/article");

获取上传路径。

小结

这个问题就这样解决了。当然还有很多细节的原理问题没有说清楚,参考了别人的文章,以后也要遇到问题多分析,多思考。问题总会被解决,再苦再累也要不断进步。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
将图片路径存入 MySQL 数据库可以按照以下步骤进行: 1. 创建一个包含图片路径的表,可以包含以下列:`id`(自增主键),`image_path`(存储图片路径的列),`created_at`(创建时间),`updated_at`(更新时间)等。 2. 在 PHP 代码中,使用 `move_uploaded_file()` 函数将上传的图片保存到服务器上的指定目录中。例如: ``` $target_dir = "uploads/"; $target_file = $target_dir . basename($_FILES["image"]["name"]); move_uploaded_file($_FILES["image"]["tmp_name"], $target_file); ``` 3. 将保存在 `$target_file` 变量中的图片路径插入到 MySQL 数据库中。可以使用 `mysqli_query()` 函数执行 `INSERT INTO` 语句。例如: ``` $link = mysqli_connect("localhost", "username", "password", "database"); $image_path = mysqli_real_escape_string($link, $target_file); $query = "INSERT INTO images (image_path) VALUES ('$image_path')"; mysqli_query($link, $query); ``` 其中,`mysqli_real_escape_string()` 函数可以确保插入的路径字符串不会破坏 MySQL 查询语句的语法结构。 4. 当需要在网页中显示图片时,从数据库中查询图片路径,并将其作为 `<img>` 标签的 `src` 属性的值。例如: ``` $query = "SELECT image_path FROM images WHERE id = 1"; $result = mysqli_query($link, $query); $row = mysqli_fetch_assoc($result); $image_path = $row["image_path"]; echo "<img src='$image_path' />"; ``` 这样,用户就可以在网页上看到存储在数据库中的图片了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值