您的位置:首页 > 其它

会议记录管理系统(4) - 会议记录添加模块

2017-12-19 21:42 459 查看
1.会议记录添加模块概述

系统正常登录后,每一个用户都有权利添加新的会议,供本部门成员和其他部门成员阅读浏览。

2.会议记录信息验证技术

向数据库中添加新会议记录时,系统必须保证用户提交的信息不为空。这里应用JavaScript脚本判断上传数据是否为空,在js文件夹下创建add_meeting.js文件,编写check_submit()方法,验证表单提交的数据是否为空。关键代码如下:

function check_submit(){
if(theForm.meeting_name.value==""){
alert("会议名称不能为空!");
theForm.meeting_name.focus();
return false;
}
if(theForm.meeting_place.value==""){
alert("会议地点不能为空!");
theForm.meeting_place.focus();
return false;
}
if(theForm.meeting_host.value==""){
alert("会议主持人不能为空!");
theForm.meeting_host.focus();
return false;
}
if(theForm.meeting_saver.value==""){
alert("会议记录人不能为空!");
theForm.meeting_saver.focus();
return false;
}
if(theForm.meeting_present.value==""){
alert("出席人员不能为空!");
theForm.meeting_present.focus();
return false;
}
if(theForm.textarea.value==""){
alert("会议摘要不能为空!");
theForm.textarea.focus();
return false;
}
theForm.submit();     // 表单提交
}


3.上传文件处理技术

本系统要求用户在上传会议记录的同时,必须上传文本文档格式的会议记录附件。所以又增加了上传文件和判断上传文件格式两项技术。

A.文件上传

文件上传应用的是move_uploaded_file函数和FILES[]全局变量。1)moveuploadedfile()函数moveuploadedfile()函数将文件上传到服务器中指定的位置。如果成功返回true,否则返回false。语法如下:boolmoveuploadedfile(stringfilename,stringdestination)参数filename指定上传文件的临时文件名,即_FILES[tmp_name];参数destination指文件上传后保存的新路径和名称。

注意:如果filename不是合法的上传文件,不会执行任何操作,move_uploaded_file()将返回false,如果参数filename是合法的上传文件,但出于某些原因无法移动,同样也不会执行任何操作,move_uploaded_file()将返回false.此外还会发出一条警告。

2)$_FILES全局变量



B.判断上传文件格式

用如下自定义函数完成,该函数存储于addmeeting_chk.php文件中,关键代码如下:

function f_postfix($f_type,$f_upfiles){     // 获取传递的参数值
$is_pass = false;
$tmp_upfiles = split("\.",$f_upfiles);  // 获取上传文件的后缀
$tmp_num = count($tmp_upfiles);          // 统计返回值的元素数量
// 循环读取定义文件类型数组的值
for($num = 0;$num < count($f_type);$num++){
// 完成文件类型的大小写转换及判断
if(strtolower($tmp_upfiles[$tmp_num - 1]) == $f_type["num"]){
$is_pass = $f_type["num"];  // 获取文件类型
}
}
return $is_pass;     // 返回上传文件的类型
}


4.会议记录添加的实现过程

会议记录添加的操作是通过addmeeting.php与addmeeting_chk.php两个文件来实现的。

(1)在addmeeting.php文件中,创建添加会议记录信息的表单,通过JavaScript脚本对提交的元素进行判断,并且设置action属性值为addmeeting_chk.php。其关

关键代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>

<body>
<script>
function checkSubmit(){

if(theForm.meeting_name.value==""){

alert("会议名称不能为空!");
theForm.meeting_name.focus();
return false;
}
// if(theForm.meeting_place.value=""){
//     alert("会议地点不能为空!");
//     theForm.meeting_place.focus();
//     return false;
// }
// if(theForm.meeting_host.value=""){
//     alert("会议主持人不能为空!");
//     theForm.meeting_host.focus();
//     return false;
// }
// if(theForm.meeting_saver.value=""){
//     alert("会议记录人不能为空!");
//     theForm.meeting_saver.focus();
//     return false;
// }
if(theForm.meeting_present.value==""){
alert("出席人员不能为空!");
theForm.meeting_present.focus();
return false;
}
if(theForm.textarea.value==""){
alert("会议摘要不能为空!");
theForm.textarea.focus();
return false;
}
theForm.submit();     // 表单提交
}
</script>
<table cellpadding="0" cellspacing="0" border="0">
<form id="theForm" name="theForm" action="addmeeting_chk.php" method="post" onsubmit="return checkSubmit();" enctype="multipart/form-data">
<tr>
<td colspan="3" height="32">
<h1 align="center">添加会议记录</h1>
</td>
</tr>
<tr>
<td width="120" height="28"><div align="center">会议名称:</div></td>
<td><input class="input2" type="text" name="meeting_name" /></td>
<td align="left" width="180"><span class="spl">*填写会议记录名称</span></td>
</tr>
<!-- 省略部分代码 -->
<tr>
<td height="28"><div align="center">出席人员:</div></td>
<td><input class="input2" type="text" name="meeting_present" /></td>
<td align="left" width="180"><span class="spl">*填写会议出席人员</span></td>
</tr>
<tr>
<td height="28">上传会议内容</td>
<td>
<input class="upload" name="meeting_documents" type="file" size="16" />
</td>
<td align="left" width="180"><span class="spl">*上传txt格式会议文稿</span></td>
</tr>
<tr>
<td><div align="center">会议摘要:</div></td>
<td height="70">
<textarea style="width:170px;border:1px solid #ccc;" name="textarea" rows="4"></textarea>
</td>
<td align="left" width="180"><span class="spl">*填写会议记录摘要</span></td>
</tr>
<tr><td height="12" colspan="3"></td></tr>
<td height="30" colspan="2">
<center>
<input class="add_mbtn1" type="submit" value="提交" />
    <input class="add_mbtn2" type="reset" value="重置" />
</center>
</td>
</form>
</table>
</body>
</html>


(2)创建addmeeting_chk.php文件,接收表单提交的数据。首先,定义自定义函数用于验证上传文件的格式;然后对上传文件进行验证操作;最后,通过move_upload_file()函数执行文件的上传操作,并且将会议记录添加到指定的数据表中。其关键代码如下:

<?php
header("Content-Type:text/html;charset=utf-8");
date_default_timezone_set('PRC');           // 设置为北京时间

session_start();
include_once("conn/conn.php");

// 判断上传格式是否符合上传要求
function f_postfix($f_type,$f_upfiles){
$is_pass = false;               // 表示上传的文件格式非法
$tmp_upfiles = split("\.",$f_upfiles);          // 返回由文件名和文件后缀组成的数组

$tmp_num = count($tmp_upfiles);                 // 返回数组长度

$f_typeLen = count($f_type);

for($num = 0;$num < $f_typeLen;$num++){
$wjhz = $tmp_upfiles[$tmp_num - 1];         // 返回文件后缀
if(strtolower($wjhz) == $f_type[$num]){
$is_pass = $f_type[$num];              // 文件后缀合法
}
}
return $is_pass;
}

// 判断是否上传了文件
if($_FILES["meeting_documents"]["size"] <= 0){      // $_FILES["meeting_documents"]["size"]返回文件字节大小
echo "<script>alert('请上传文件');history.go(-1);</script>";
}else{
// 如果上传了文件
$f_type = array("txt");                         // 定义上传文件的格式
$record_path = "upfile";                        // 定义上传路径

$fileName = $_FILES["meeting_documents"]["name"];

$postf = f_postfix($f_type,$fileName);

// 判断上传格式
if($postf != false){
$new_path = time().".txt";                  // 以时间戳定义上传文件名称

// 判断用户上传文件大小是否超过10MB
if($_FILES["meeting_documents"]["size"] > 0 and $_FILES["meeting_documents"]["size"] < 1000000){

// 定义上传文件在服务端的路径
$filepath = $record_path . "\\" . $new_path;        // upfile...
$filepath = addslashes($filepath);                  // addslashes函数,防止数据插入数据库时,斜杠被过滤掉
echo "文件服务端路径为:".$filepath."<br />";

// 数据库操作命令
$sqlstrii = "insert into tb_meeting_info(meeting_name,meeting_present,meeting_abstruct,meeting_address)
values('$_POST[meeting_name]','$_POST[meeting_present]','$_POST[textarea]','$filepath)')";

// echo $sqlstrii;

// 插入数据库
if( mysql_query($sqlstrii)){
// 上传文件操作
// $_FILES["meeting_documents"]["tmp_name"],存储文件在临时目录中使用的文件名。因为文件在上传时,首先要以临时文件的身份保存在临时目录中。
move_uploaded_file($_FILES["meeting_documents"]["tmp_name"],$filepath);
echo "<script>alert('数据库添加成功!');history.go(-1);</script>";
}else{
echo "<script>alert('数据库添加失败!');history.go(-1);</script>";
}

}else{
echo "<script>alert('文件大小超过10MB');history.go(-1);</script>";
}

}else{
echo "<script>alert('上传只支持\".txt\"格式的文件');history.go(-1);</script>";
}
}
?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: