如何解决上传图片后需要点一下项目,才会更新图片?

通过前端ajax上传图片到本项目下的static某文件夹。这里图片是上传成功的,成功之后返回该图片路径给前端img标签。
但是这里有个bug,在前端操作功能上传成功后需要点击一下项目,图片才会显示出来。这就导致。如果不切换到Idea图片就不会显示上传到那个文件夹。导致就算把图片路径发给前端了,前端也读取不到。有什么办法解决吗?

img

按理来说,上传的图片不应该保存到static上(个人觉得),因为这样会给服务器造成压力(图片多了,重新启动服务器,时间可能会久点),可以考虑上传图片到一个其他文件夹下(需要做相应配置),返回相对应的图片路径即可,这样应该没有问题,我就是这样做的。

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 以下回答来自chatgpt:

    该问题的原因是由于前端无法获取到新上传的图片的路径,导致无法更新图片显示。解决该问题的方法是在上传成功后,将图片路径返回给前端,并在前端使用该路径更新图片显示。下面是详细的解决方案:

    1. 修改后端代码:
    2. 在后端的上传图片接口中,将上传成功的图片路径返回给前端。可以使用JSON格式返回,例如:{"success": true, "imageUrl": "/static/uploads/image.jpg"}

    3. 修改前端代码:

    4. 在前端的上传图片的AJAX请求成功后的处理函数中,获取到返回的图片路径。
    5. 使用该路径更新图片显示。
    6. 下面是一个简单的示例代码:
    function uploadImage() {
      // 获取上传文件的表单数据
      var formData = new FormData($("#uploadForm")[0]);
    
      $.ajax({
        url: "后端上传图片接口的URL",
        type: "POST",
        data: formData,
        processData: false,
        contentType: false,
        success: function(response) {
          // 上传成功后的处理函数
          if (response.success) {
            // 获取到图片路径
            var imageUrl = response.imageUrl;
    
            // 更新图片显示
            $("#image").attr("src", imageUrl);
          }
        },
        error: function(xhr, status, error) {
          // 错误处理
          console.log(error);
        }
      });
    }
    
    1. 在前端页面中增加一个显示图片的img标签,例如:
    <img id="image" src="" alt="Uploaded Image">
    

    这样,在上传成功后,前端就能够获取到新上传图片的路径,并更新图片显示,无需手动刷新页面。

    请注意,以上代码只是一个简单的示例,具体实现需要根据你的项目具体情况进行调整和编写。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^