我用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<div id=isChromeWebToolbarDiv" style="display:none"></div>
答案 0 :(得分:2)
似乎你在src字符串中有问题。
检查转义字符...
我会说fname
可能包含引号......
编辑: What "isChromeWebToolbarDiv"?
fname = fname.replace(new RegExp("<div id=isChromeWebToolbarDiv(.*)</div>"),'');
或只是
fname = fname.replace(new RegExp("<div(.*)</div>"),'');
答案 1 :(得分:1)
在您的 EDIT 之后,它开始知道
即将进入src
这是由名为 DVDvideosoftTB 的Chrome扩展程序引起的。它似乎将上述HTML附加到文件上载请求。您可以轻松禁用它: