0

我尝试使用 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;
        }
    });
4

3 回答 3

0

我可以建议您使用此示例上传多张图片...

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

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

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

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

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

享受!!

于 2013-05-10T11:07:15.133 回答
0

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

您还可以为图像添加高度

img.src = 'img/product/tmp/'+session+'/'+file+type+'?'+cachenum;
img.height = new_height; 
于 2013-05-10T11:10:52.447 回答
0

使用 new Date().getTime() 替换变量 cachenum,它可以工作。

于 2013-05-10T20:54:33.333 回答