【问题标题】:The uploaded image not displayed after ajax upload in chrome在chrome中ajax上传后上传的图片不显示
【发布时间】:2012-09-04 06:30:41
【问题描述】:

我使用 php 进行了 ajax 上传。在 firefox 中一切都会完美。

但是当我在 chrome 浏览器中测试它时它不能正常工作。

这意味着它会显示:

这是我的ajax上传代码:

$(function(){
        var cntUp = 0;
        var btnUpload=$('#upload0');
        var status=$('#status');
        var state='left_front';

        new AjaxUpload(btnUpload, {
            action: 'upload-file.php',
            data: {saleid: $("#hid_saleid").val(),imag_state:state,custom:$('#custom').val()},
            name: 'uploadfile',
            onSubmit: function(file, ext){
                 if (! (ext && /^(jpg|png|jpeg|gif)$/.test(ext))){ 
                    // extension is not allowed 
                    alert('Only JPG, PNG or GIF files are allowed');
                    return false;
                }
                this.setData({
                    'saleid': $("#hid_saleid").val(),
                    'imag_state':'left_front',
                    'custom':$('#custom').val()
                });

                status.text('Uploading...');
            },
            onComplete: function(file, response){
                var array_data=response.split('***');   
                var  fname= array_data[1];  
                var rand=Math.floor((Math.random()*10)+1); 
                var saleid = $("#hid_saleid").val();
                var custom = $('#custom').val();
                //On completion clear the status
                status.text('image uploaded');
                cntUp++;
                //console.log(cntUp);
                //Add uploaded file to list
                if (response.toLowerCase().indexOf("success") >= 0 ) {
                    var image='<img src="uploads/'+saleid+'/'+fname+'" alt=""  width="131px" height="125px"/>';
                    $("#img0").html(image);

                }  else{
                    $('<li></li>').appendTo('#files').text(file).addClass('error');
                    //alert('error');
                }
            }
        });

    });

这是html代码:

<div class="brwse_box">
<div style="float:left;" id="upload0">
<h3>Left Front</h3>

<img src="images/upload.gif" />
</div>
<div style="float:right; width:131; height:125" id="img0">
<?php if($l_ft==''||$l_ft==NULL) { ?>
  <img src="images/no-photo-lft-frnt.jpg"  id="bg"/>
<?php } if($l_ft!=''||$l_ft!=NULL){?>
   <img src="uploads/<?php echo $var_sid;?>/<?php echo $l_ft;?>" id="bg" width="131px" height="125px"/>
<?php }?>
</div>
</div><!--browse_box ENDS-->

我该如何解决这个问题?

它在firefox中显示图像。但在chrome中不显示图像而不是显示图像标签的html。

编辑:

这是fname变量中的返回值:

left_front.jpg&lt;div id=isChromeWebToolbarDiv" style="display:none"&gt;&lt;/div&gt;

【问题讨论】:

  • 检查saleidfnamesrc="uploads/'+saleid+'/'+fname+'"的值
  • &lt;div id=isChromeWebToolbarDiv" style="display:none"&gt; 是由名为 DVDvideosoftTB 的 Chrome 扩展程序引起的,禁用 DVDvideosoftTB

标签: php firefox google-chrome ajax-upload


【解决方案1】:

您的 src 字符串似乎有问题。 检查它是否有转义字符... 我想说fname 可能包含引号...

编辑: What "isChromeWebToolbarDiv"?

fname = fname.replace(new RegExp("<div id=isChromeWebToolbarDiv(.*)</div>"),'');

或者干脆

fname = fname.replace(new RegExp("<div(.*)</div>"),'');

【讨论】:

  • @Armel 这是fname 的值返回left_front.jpg&lt;div id=isChromeWebToolbarDiv" style="display:none"&gt;&lt;/div&gt;
  • 您正在使用 DVDvideosoftTB chrome 扩展程序?
  • @Armel 我不知道那是什么?我怎样才能使用它?
  • 请参阅我的帖子中的编辑。这是一个 Chrome 扩展程序。只需在 google 中输入 DVDvideosoftTB 或 isChromeWebToolbarDiv
  • @Armel 这是我的 chrome 中唯一的扩展 BrotherSoft Extreme 2.3.15.10
【解决方案2】:

在您编辑问题后,它才知道

来了src

这是由名为 DVDvideosoftTB 的 Chrome 扩展程序引起的。它似乎将上述 HTML 附加到文件上传请求中。您可以轻松禁用它:

  • 点击扳手图标
  • 点击“工具
  • 点击“扩展程序
  • 禁用 DVDvideosoftTB

【讨论】:

  • 这是我的 chrome 中唯一的扩展 BrotherSoft Extreme 2.3.15.10
  • 支持我的回答,我会建议您接受@Armel L. 的回答。因为他猜对了,也更新了他的答案。
  • 在我的 chrome 中,我可以通过禁用扩展来处理这个问题,但是如果客户或客户收到此错误该怎么办...?
  • 你必须在页面上放置一个sidenot来处理这个
猜你喜欢
  • 2011-10-17
  • 1970-01-01
  • 2018-06-03
  • 1970-01-01
  • 2015-08-04
  • 2018-11-12
  • 1970-01-01
  • 2015-02-12
相关资源
最近更新 更多