前端页面文件上,写上target,并且要写上enctype="multipart/form-data"才能上传图片
<form class="form-horizontal" role="form" enctype="multipart/form-data" method='post' target='frameFile' action="__URL__/upload/" id="picform" name="picform">
<div class="form-group">
<label class="col-sm-2 control-label" for="form-field-1"> 上传产品图片:</label>
<div class="col-sm-4">
<div><input type="file" name="thumb" class="btn btn-warning" οnchange="upimg()" id="thumb"></div>
<div class="space-4"></div>
<!--<div><button class="btn btn-warning">上传</button></div>
<div class="space-4"></div>-->
<div><img src="" style="width:100px;max-height:300px;display:none;" id="img"/></div>
</div>
<div class="help-block col-xs-12 col-sm-reset inline">
</div>
</div>
</form>
<iframe id='frameFile' name='frameFile' style='display: none;'></iframe>
现在需要调用一个回调函数,在这个html页面
function callback(image){
// alert(str);
$("#img").attr("src","__ROOT__/Uploads/"+image);
$("#img").show();
imgSuccess = true;
}
然后往iframe内写入内容,去调用这个父页面的回调函数,在php后台的iframe处理数据的代码内(即action对应的方法内)成功执行其他代码后
echo("<script type=\"text/javascript\">parent.callback('".$_POST['image']."');</script>");
public function upload() {
if (!empty($_FILES)) {
//如果有文件上传 上传附件
$this->_upload();
}
}
// 文件上传
protected function _upload() {
import('@.ORG.UploadFile');
//导入上传类
$upload = new UploadFile();
//设置上传文件大小
$upload->maxSize = 3292200;
//设置上传文件类型
$upload->allowExts = explode(',', 'jpg,gif,png,jpeg');
//设置附件上传目录
$upload->savePath = './Uploads/';
//设置需要生成缩略图,仅对图像文件有效
$upload->thumb = true;
// 设置引用图片类库包路径
$upload->imageClassPath = '@.ORG.Image';
//设置需要生成缩略图的文件后缀
$upload->thumbPrefix = 'm_,s_'; //生产2张缩略图
//设置缩略图最大宽度
$upload->thumbMaxWidth = '400,100';
//设置缩略图最大高度
$upload->thumbMaxHeight = '400,100';
//设置上传文件规则
$upload->saveRule = 'uniqid';
//删除原图
$upload->thumbRemoveOrigin = false;
if (!$upload->upload()) {
//捕获上传异常
$this->error($upload->getErrorMsg());
} else {
//取得成功上传的文件信息
$uploadList = $upload->getUploadFileInfo();
import('@.ORG.Image');
//给m_缩略图添加水印, Image::water('原文件名','水印图片地址')
// Image::water($uploadList[0]['savepath'] . 'm_' . $uploadList[0]['savename'], __ROOT__.'/App/Tpl/Public/Images/logo.png');
$_POST['image'] = $uploadList[0]['savename'];
}
$model = M('Img');
//保存当前数据对象
$data['photo'] = $_POST['image'];
$_SESSION['image'] = $_POST['image'];
// $data['product_model'] = $_POST['product_model'];
// $data['stocks'] = $_POST['stocks'];
// $data['update_time'] = date('Y-m-d H:i:s',NOW_TIME);
$list = $model->add($data);
if ($list !== false) {
// $this->success('上传图片成功!');
// echo("ss");
echo("<script type=\"text/javascript\">parent.callback('".$_POST['image']."');</script>");
} else {
$this->error('上传图片失败!');
}
}