好吧,其实我这人不看重访问量的,但是今天一天的访问量比我去年发的一篇还要多.
我还是有点小小的惊讶的.作为一个做技术的屌丝.不,我不认为自己是屌丝,我觉得编程是一件高大山的职业.虽然很累,但是确实能让你每天的生活很充实.
No matter whether you believe it or not,anyhow I believe it.
今天接着上一篇来说,我们只是简单的文章的上传和修改.
如果涉及到附件呢.在修改的时候如果需要更换附件的时候,这真的是一件很头痛的事情.
我不知道大家是怎样实现的.下面我分享一下我的方法吧.
在页面中我是这样实现的.
<form method="POST" action="{:U(‘article/add‘)}" enctype="multipart/form-data" >
<input type="text" name="title" />
<textarea name="content" ></textarea>
<input type="file" name="file" />
<input type="submit" name="submit" value="submit" />
</form>
我在后台进行添加操作.
首先我们再开始接收数据.如title,content的内容.判断内容是否为空,为空直接返回.
如果有我们需要判断一下是否有附件,如果有附件的话,我们先通过程序将其移动到项目的uploads文件夹中,
如果失败的话,我们就直接返回了.
好,上程序.
if(IS_POST){
$title = $_POST[‘title‘];
$content = $_POST[‘content‘];
if($title&&$content){
if($_FILES[‘file‘][‘name‘])
//开始对提交的附件进行处理.
如果成功,则可以得到我们附件的名称和上传的地址等信息,看你需要什么
如果失败的话
返回错误.
}
$arr = array(
‘title‘ => $title,
‘content‘ => $content;
‘filename‘ => ///
‘filepath‘ => ///
);
$flag = 进行插入操作..
if($flag) $str = "成功";
else $str = "失败";
$this->success("添加".$str,//跳到列表路由中.);
}
}//end of post.
//下面是模板内容....
现在我们如果是要修改该内容的话.
我想到了一个方法..
在页面中,如果有附件,我们显示图片的名称.如果需要修改,我们就将file的提交框显示出来..
我只写关键部分了哈..
<if condition="$result[filename]">
<input type="text" name="" value="{$result.filename}" readonly onclick="show_file(this)" />
<input type="file" name="file" style="display:none"/>
<else/>
<input type="file" name="file" />
</if>
<script type="text/javascript">
//这里我们使用jquery来实现.
function show_file(o){
$this = $(o);
$this.hide();
$this.next().show();
}
</script>
搞定了...这样在前台还是比较美观的吧...
后台的逻辑有点复杂了..
首先你要判断是否有附件,如果没有,你就不能往数据库里面写入空值,如果数据库里本来有,现在用户没有修改附件,如果统一的往数据库里面写内容.则会覆盖..
我说下我的思路.
首先还是判断title,content是否为空.
如果不为空,判断是否有附件,如果有附件,我们就进行统一的接收操作.
if(IS_POST){
$title = $_POST[‘title‘];
$content = $_POST[‘content‘];
if($title&&$content){
//这里我们先定义一个数组..
$data = array();
if($_FILES[‘file‘][‘name‘])
//开始对提交的附件进行处理.
如果成功,则可以得到我们附件的名称和上传的地址等信息,看你需要什么
如果失败的话
返回错误.
成功
$data[‘filename‘] = //文件名
$data[‘filepath‘] = //文件路径.
}
$arr = array(
‘title‘ => $title,
‘content‘ => $content
);
if(!$_POST[‘id‘]){
$flag = 进行插入操作..
$type = "添加";
}else{
$flag = 进行修改操作.
$type = "修改";
}
if($flag) $str = "成功";
else $str = "失败";
$this->success($type.$str,//跳到列表路由中.);
}
}//end of post.
//下面是模板内容....