今天做Thinkphp图片上传,Thinkphp内置了图片上传类,官方也给出了很详细的教程,按照教程很快就做出来了,但是做出来不是我想要的效果,我想要的效果是图片上传后要返回图片路径给表单,于是我想到了IFRAME,我将代码做了改动:
<input type="text" name="image"/>
<IFRAME name=fo frameBorder=0 height=24 marginHeight=1 marginWidth=1 scrolling=no BORDERCOLOR="#CCCCFF" src="{:U('Upimg/upimg')}" style="vertical-align: middle;"></iframe>
upimg:
<form id="form1" name="form1" enctype="multipart/form-data" method="post" action="__URL__/upload_ok">
<label></label><label></label>
<label>
<input type="file" name="filename" />
</label>
<label>
<input type="submit" name="Submit" value="上传" />
</label>
</form>
然后我在Action中加入了添加代码:
$upinfo=upimage();
if($upinfo=='err')
{
$this->error("上传图片失败!");
}elseif($upinfo!="")
{
$path=$upinfo[0]['savepath']."".$upinfo[0]['savename'];
echo "<script language=javascript>parent.document.form1.image.value='".$path."'</script>";
}
但是还是不行,我在网上找了很多关于thinkphp图片上传的实例,都是和官方给出的代码差不多,找了很久都没有找到解决方案,于是我搜索thinkphp中的IFRAME,终于找到了解决方案,在csdn有个帖子就有这个问题,并且回复者回复很简单:每个 frame 都要有一个自己的控制器,真实太感谢了。