【问题标题】:How to avoid show the image has same name just did remove?如何避免显示刚刚删除的图像具有相同的名称?
【发布时间】:2013-05-10 10:57:32
【问题描述】:

我尝试使用 ajax 上传图片到 raphael,上传 1.jpg 后删除,然后上传另一个同名的图片 1.jpg。
它显示了刚刚删除的图像,我发现了一些类似的问题和答案。
所以我会在不同的图像 url 输出后添加价值,比如<image href="..?different_value">
现在可以显示不同的图像但图像宽度和高度没有更新,仍然是旧图像的宽度和高度,jquery或php中的任何建议解决这个问题?

var cachenum = 0;
$('.upload_btn').click(function(){
    var uf = $('.upload form');
    var fd = new FormData(uf[0]);
    fd.append('upload','1');

    $.ajax({
        type: "POST",
        url: "index.php",
        data: fd,
        processData: false,
        contentType: false,
        success: function(html){
            var session = ..., file = ... type = ...;
            function register(el) {
                // toggle handle and remove button
            };
            var img = new Image();
            img.onload = function(){
                var img_width = this.width, img_height = this.height;
                var img_scale = img_width / 200;
                var new_height = img_height / img_scale;
                cachenum = cachenum+1;
                var r_img = paper.image('img/product/tmp/'+session+'/'+file+type+'?'+cachenum, 0, 0, 200, new_height);
                register(r_img);
                return cachenum;
            };
            img.src = 'img/product/tmp/'+session+'/'+file+type+'?'+cachenum;
        }
    });

【问题讨论】:

  • 您需要上传多张图片到服务器吗?还是我误解了什么?
  • @user123_456 是的,我尝试让用户上传多张图片,并且可以删除每张。

标签: php jquery ajax browser-cache


【解决方案1】:

我可以推荐你使用这个EXAMPLE 来上传多张图片...

想法是只有一个输入字段可用于上传多张图片。

不需要您的ajax() 调用...人们只是在这个 ajax 调用中挖掘得如此之深,但有时我们可以使用一个简单的形式,这将使我们的生活更轻松!

只需使用本示例中的表单,这将使您开始!

一个注意此选项不适用于所有浏览器!!!也有你的想法!

我已经在 Chrome 和 Safari 中对其进行了测试,效果非常好!

享受!!

【讨论】:

  • 感谢您的回复!但我不能离开 ie 用户...而且我需要在页面中动态显示,在 Raphael 中加载图像..但是您的示例似乎只是上传图像,如果不刷新就无法在页面中显示。
  • 您真正想要完成什么?请更具体,因为我没有正确理解您的意思
  • 我正在尝试创建一个页面让用户上传图片,并在页面中动态显示每次上传而不刷新,用户可以继续上传更多或删除其中一个,点击删除而不刷新。用户也可以在 raphael freetransform 中编辑(旋转、调整大小)
【解决方案2】:

我认为是因为您只指定了图像的 src

您还可以为图像添加高度

img.src = 'img/product/tmp/'+session+'/'+file+type+'?'+cachenum;
img.height = new_height; 

【讨论】:

  • 感谢您的回复,但这不起作用,因为 img.height 必须在 img 加载时定义.. 你能帮我一些代码例如
【解决方案3】:

用new Date().getTime()替换变量cachenum,就可以了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-04
    相关资源
    最近更新 更多