【问题标题】:automatically update image when new one uploaded javascript新上传javascript时自动更新图片
【发布时间】:2021-05-07 00:31:01
【问题描述】:

我希望能够更新我在将新图像上传到数据库时看到的图像。我正在使用 Cloudinary,所以一旦我使用小部件上传到 Cloudinary,我就会得到一个唯一的 url,我可以得到,但我无法在页面上显示新的更新图像。这是我得到的:

    <div class="image"style="background: url('<%= ogImgUrl %>') center;
            width: 50%;
            height: 100%;
            display:block;background-size: 75%; background-repeat: no-repeat;
       border-radius: 8px 0 0 8px;">
 <button id="upload_widget" class="button">Upload Product Image</button>
    </div>
        
<form method="GET" action="/editProduct2">
    <!-- submit image -->

 <!-- submit image end -->
 <input type="hidden" name="url" id="url" value="<%= ogImgUrl %>" readonly>
     
      <button id="submitButton" type="submit">SUBMIT CHANGES</button>

</form>
        </div>
      </div>
    </div>
      
               

              <script src="https://widget.cloudinary.com/v2.0/global/all.js" type="text/javascript"></script>  
             
              <script type="text/javascript">  
              var myWidget = cloudinary.createUploadWidget({
                cloudName: 'xxx', 
                uploadPreset: 'ld3l7evv'}, (error, result) => { 
                  if (!error && result && result.event === "success") { 
                    console.log('Done! Here is the image info: ', result.info); 
                    console.log(result.info.secure_url)
                    var result_url = result.info.secure_url;
                    console.log("result url is " + result_url)
                    document.getElementById("url").value = result_url;
                  }
                }
              )
             
              document.getElementById("upload_widget").addEventListener("click", function(){
                myWidget.open();
             
                }, false);

               
              </script>

所以我在这里显示数据库中的当前图像:&lt;div class="image"style="background: url('&lt;%= ogImgUrl %&gt;') center; 但现在我想用我使用 Cloudinary 小部件上传的新图像来更新该图像。请记住,只要我上传照片,我就会获得该图像的唯一网址,因此如果有办法更新原始照片然后显示更新后的照片,那就太好了。谢谢:)

【问题讨论】:

    标签: javascript html ejs cloudinary


    【解决方案1】:

    如果要更新现有图像,可以在上传过程中指定相同的public_id。您可能还想指定invalidate: true。这将使所有 CDN 缓存失效,以确保您获得的是最新版本。

    由于您使用的是上传预设,您还可以指定是否要使用原始文件名,允许/禁止公共ID。

    我建议检查 Cloudinary Upload API 以检查您在上传调用期间可以传递的必需参数和可能参数。

    【讨论】:

      猜你喜欢
      • 2018-08-15
      • 2011-07-08
      • 1970-01-01
      • 2013-09-11
      • 2012-06-20
      • 1970-01-01
      • 2016-08-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多