最近在写个项目,到了要添加商品图片,话说如果一个商城没有图片那还是商城吗?可是呢,用到这个uploadify浏览器兼容问题,怎么做都是没有效果,百度了很久也没有效果,下面看代码和解决办法:
代码实例:(首先的先下载uploadify)
1: 引入相关的文件(下载好的文件所在的项目目录的路径)
<script type="text/javascript" src="__PUBLIC__/up/jquery.min.js"></script>
<link rel="stylesheet" href="__PUBLIC__/up/uploadify.css">
<script src="__PUBLIC__/up/jquery.uploadify.min.js"></script>
2:前台代码:(但图片上传)
<div class="form-group">
<label for="">IMG</label>
<div id="imgs"></div>
<input type="file" name="img" class="form-control" id="ups">
<input type="hidden" name="img" id="img_post">
</div>
// (多图片上传)
<div class="form-group">
<label for="">IMGS</label>
<div id="imgss"></div>
<input type="file" name="img" class="form-control" id="duo">
<input type="hidden" name="img" id="img_posts">
</div>
3 : JS代码
<script>
// 图片上传
var img = '';
$('#ups').uploadify({
'swf' : '__PUBLIC__/up/uploadify.swf',
'uploader' : '{:U("Goods/ajax_up")}', //上传的方法
'buttonText' : '商品图片上传',
onUploadSuccess : function(file, data, response) {
//把所有上传的图片都放入DIV中
$("#img_post").val(data);
img = "<img width='200px' src='__UPLOADS__/"+data+"'>";
$('#imgs').html(img);
}
});
// 多图片上传
var img = '';
$('#duo').uploadify({
'swf' : '__PUBLIC__/up/uploadify.swf',
'uploader' : '{:U("Goods/ajax_up")}', //上传的方法
'buttonText' : '多图片上传',
onUploadSuccess : function(file, data, response) {
//把所有上传的图片都放入DIV中
$("#img_posts").val(data);
img = "<img width='200px' src='__UPLOADS__/"+data+"'>";
$('#imgss').html(img);
}
});
</script>
4: 后台代码:
// 无刷新上传图片
public function ajax_up(){
if (!empty($_FILES)) {
//图片上传设置
$upload = new \Think\Upload();// 实例化上传类
$upload->autoSub=false;
$images = $upload->upload();
//判断是否有图
if($images){
$info=$images['Filedata']['savepath'].$images['Filedata']['savename'];
//返回文件地址和名给JS作回调用
$path=$info;
// 对图片进行裁剪和水印处理
$image=new \Think\Image();
// 打开文件-并进行缩放
$image->open('./Uploads/'.$path)->thumb(540,540)->save('./Uploads/Goods/lg_'.$path);
$image->open('./Uploads/'.$path)->thumb(200,200)->save('./Uploads/Goods/md_'.$path);
$image->open('./Uploads/'.$path)->thumb(90,90)->save('./Uploads/Goods/sm_'.$path);
// 打开文件-并进行水印
echo $info;
}else{
$this->error($upload->getError());//获取失败信息
}
}
}
5:解决办法:如下图所示,只需开启chome的 FLASH功能,而且允许访问通知必须关闭.