Yii Crop Image 上传使用 Ajax 问题
Posted
技术标签:
【中文标题】Yii Crop Image 上传使用 Ajax 问题【英文标题】:Yii Crop Image upload using Ajax Issue 【发布时间】:2015-01-20 10:32:03 【问题描述】:您好,我只是想在 yii 扩展中使用 navajcrop 上传图片。使用ajax调用上传图片。我可以上传图片。但问题是无法查看上传的图像。当我查看上传的图像时,它显示以下错误:- 解释 JPEG 图像文件时出错(不是 JPEG 文件:以 0x75 0xab 开头)
控制器代码:-
public function actionUpload()
$model = new Register();
if(isset($_POST))
$rnd = rand(0, 9999);
$img = $_POST['image'];
if($img != '/img/noimage.png' && $img != $model->image)
$img = str_replace('data:image/jpeg;base64,', '', $img);
$img = str_replace(' ', '+', $img);
$data = base64_decode($img);
$file = Yii::app()->basePath . '/../themes/front/assets/img/photo/' . $rnd.'.jpg';
file_put_contents($file, $data);
JS 代码:-
function doSomething(obj,res) //the 'obj' is IMG tag, 'res' is base64image
$.ajax(
cache: false,
type: 'post',
//url: <?php echo Yii::app()->createUrl('site/upload');?>,
url: baseUrl+"/admin/ajax/Upload",
data: 'image='+res,
success: function()
obj.attr('src',res);
);
查看代码:-
<?php $this->widget('ext.NavaJcrop.ImageJcrop', array(
'config' => array(
'title'=>$model->image,
'image'=>$model->image,//required, all field below are not required.
'id'=>'nava-jcrop',
//'unique'=>true,
'buttons'=>array(
'cancel'=>array(
'name'=>'Cancel',
'class'=>'button-crop',
'style'=>'margin-left: 5px;',
),
/*'edit'=>array(
'name'=>'Edit',
'class'=>'button-crop',
'style'=>'margin-left: 5px;',
),*/
'crop'=>array(
'name'=>'Crop',
'class'=>'button-crop',
'style'=>'margin-left: 5px;',
)
),
'options'=>array(
'imageWidth'=>150,
'imageHeight'=>175,
'resultStyle'=>'position: fixed;top: 400px;max-width:350px;max-height:350px;z-index: 9999;',
'resultMaxWidth'=>350,
'resultMinWidth'=>350,
),
'callBack'=> array(
'success'=>"function(obj,res)doSomething(obj,res);",
'error'=>"function()alert('error');",
)
)
)); ?>
请帮忙解决这个错误。
【问题讨论】:
嗨,阿米特,您是说您可以加载图像,但是您是否尝试过直接打开该文件?似乎没有适当的扩展...... 【参考方案1】:您好,我已经解决了我的问题,它是以下语法中的错误。
在控制器操作中:- 编辑
$img = str_replace('data:image/png;base64,', '', $img);
$file = Yii::app()->basePath 。 '/../themes/front/assets/img/photo/' 。 $rnd.'.png';
【讨论】:
以上是关于Yii Crop Image 上传使用 Ajax 问题的主要内容,如果未能解决你的问题,请参考以下文章
Vue3完善vue-image-crop-upload的使用(修改源码)