首页 > 代码库 > thinkphp 关于iframe一次提交完成所有操作
thinkphp 关于iframe一次提交完成所有操作
一、上传操作html界面,upload.html
<import type=‘css‘ file="admin.css.common" />
<import type=‘css‘ file="admin.css.main" />
<form action="{:U(‘Public/upload_post‘)}" style="height:40px;" enctype="multipart/form-data" method="post" >
<input type="file" name="photo" class="input-text lh30" size="10" />
</form>
二、页面引用upload页面
<input type="hidden" name="picurl" id="picurl" value="" />
<iframe width="100%" id="uploadframe" name="uploadframe" frameborder="0" height="40" src="http://www.mamicode.com/{:U(‘Public/upload‘)}"></iframe>
三、点击提交
<input type="submit" onclick="return jc();" name="button" class="btn btn82 btn_save2" value="http://www.mamicode.com/保存">
<input type="resit" name="button" class="btn btn82 btn_res" value="http://www.mamicode.com/重置">
四、js提交操作,实现upload页面上传提交操作
function jc(){
if($(window.frames["uploadframe"].document).contents().find("input").val()){
$(window.frames["uploadframe"].document).contents().find("form").submit();
return false;
}
}
五、上传控制器处理。当上传成功后,js使父框架原表单提交。
public function upload_post(){
$upload = new \Think\Upload();// 实例化上传类
$upload->maxSize = 3145728 ;// 设置附件上传大小
$upload->exts = array(‘jpg‘, ‘gif‘, ‘png‘, ‘jpeg‘);// 设置附件上传类型
$upload->rootPath = ‘./Uploads/‘; // 设置附件上传根目录
$upload->savePath = ‘‘; // 设置附件上传(子)目录
// 上传文件
$info = $upload->upload();
if(!$info) {// 上传错误提示错误信息
$this->error($upload->getError());
}else{// 上传成功
echo ‘<script>parent.document.getElementById("picurl").value="http://www.mamicode.com/‘. $info["photo"][‘savepath‘].$info["photo"][‘savename‘].‘";
parent.document.getElementById("myFrom").submit(); </script>‘;
// $this->success(‘上传成功!‘);
}
}