----------------view-----------------------------------
<form method="post" action="__SELF__">
<input type="hidden" id="logo" size="40" name="logo" />
<li>
<label>Logo</label>
<img id="pre_img" />
<input id="selImg" type="button" value="选择图片" />
</form>
----------------------弹出层-------------------------
<iframe style="display:none;" name="ifr"></iframe>
<div id="upload" style="position:absolute;display:none;padding:10px;border:1px solid #CCC;background:#FFF;width:360px;">
<form id="pre_form" target="ifr" method="POST" action="__CONTROLLER__/ajaxUpload" enctype="multipart/form-data">
图片:<input type="file" name="img" /><input type="submit" value="上传" />
<a id="close" href="javascript:void(0);"> [关闭] </a>
</form>
</div>
-----------------------JS--------------------------------
<script>
$("#close").click(
function(){
$("#upload").
hide();
});
$("#selImg").click(
function(){
// 获取按钮的位置
var p = $(this).
position();
var div = $("#upload"
);
div.
css({
"left":p.left+"px",
"top":p.top+"px",
"display":""
});
});
</script>
--------------------------控制器-------------------
//注意 Good/Temp目录需要自己手动创建
public function ajaxUpload()
{
// 读取上传图片的配置
$config = C('UPLOAD_CONFIG'
);
// 设置上传路径
$config['savePath'] = 'Goods/Temp/'
;
$upload =
new \Think\Upload(
$config);
// 执行上传
$info =
$upload->
upload();
if(!
$info)
die(
$upload->
getError());
// 设置模型原图地址
$url = 'Uploads/'.
$info['img']['savepath'] .
$info['img']['savename'
];
$thumb_url = 'Uploads/'.
$info['img']['savepath'] . 'sm_' .
$info['img']['savename'
];
$image =
new \Think\Image();
$image->open(
$url);
$image->thumb(100, 100)->save(
$thumb_url);
#设置图片显示
$show_img="shop_tp/".
$thumb_url;
// 在子窗口中的执行JS把数据放到父窗口的表单中
$js = '<script>'
;
$js .=<<<
JS
parent.document.getElementById("logo").value='$url'
;
parent.document.getElementById("pre_img").src='/$show_img'
;
parent.document.getElementById("upload").style.display="none"
;
parent.document.getElementById("pre_form").
reset();
JS;
$js .= '</script>'
;
echo $js;
}
}
转载于:https://www.cnblogs.com/hgj123/p/4151186.html