|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
会有很多高手的鼓励,新手的支持,慢慢你劲头就十足,有更多的信心和兴趣去学。剧本|数据|数据库|详解 (作者:王凯波)
使用PHP将文件保留到数据库
数据库是数据组织、存储的中间。将要处置的也多是各类数据,包含法式、文件、报表,乃至音频、视频数据。因为经由过程阅读器,团体用户只能填写少局部的团体简历。因而,咱们这里示范用户团体简历上载的功效。其他类型的数据可以仿照此例停止操作。
起首是信息搜集页面。让用户选摘要上载的文件。此页面的html代码以下:
〈!-- begin of post.htm--〉
〈p〉 〈/p〉
〈form method="POST" action="insert.php" ENCTYPE="multipart/form-data"〉
〈p〉〈b〉团体简历提交〈/b〉〈/p〉
〈p〉姓名:〈br〉
〈input type="text" name="Name" size="20"〉〈/p〉
〈p〉团体简介:〈br〉
〈textarea rows="2" name="Intro" cols="20"〉〈/textarea〉〈/p〉
〈p〉简历文件:〈br〉
〈input type="file" name="ResuFile"〉〈/p〉
〈p〉〈input type="submit" value="提交" name="B1"〉〈/p〉
〈/form〉
〈!-End of post.htm--〉
注重,ENCTYPE关头字必定不克不及省,不然文件没法准确上载。
这里,咱们再把向数据库拔出纪录的代码从头设计:
〈?
//begin of file insert.php
if($ResuFile != "none")
//肯定用户选择了文件
{
$Size = filesize($ResuFile);
//肯定文件巨细
$mFileData = addslashes(fread(fopen($ResuFile, "r"), $Size));
//读取文件,对内容停止处置
unlink($ResuFile);
//删除上载一时文件
}
$LinkID=@mysql_connect("localhost", "root" , "") or die("不克不及毗连到数据库办事器!多是数据库办事器没有启动,或用户名暗码有误!");
$DBID = @mysql_select_db("ResumeDB",$LinkID) or die("选择数据库失足,多是您指定的数据库不存在!");
$query = "insert into Resume(Name,Intro,ResuFile) values('$Name', '$Intro', '$mFileData')";
$result = @mysql_query("$query",$LinkID); //履行查询,拔出文件到数据库
if(! $result)
echo "数据拔出掉败!";
else
echo "文件上载胜利!";
@mysql_close($LinkID);
//end of file insert.php
?〉
有了下面的基本,写出从数据库读数据的法式应当很复杂了。需求注重的是文件向客户发送的办法。办事器必需向阅读器发送头信息,申明将要发送的数据为word文档。假如用户盘算机装有MSWord,阅读器将主动挪用word停止文档显示。
咱们可以设置一个超等链接,来下载这个Word文件:
〈?
//begin of file show.php
$LinkID=@mysql_connect("localhost", "root" , "") or die("不克不及毗连到数据库办事器!多是数据库办事器没有启动,或用户名暗码有误!");
$DBID = @mysql_select_db("ResumeDB",$LinkID) or die("选择数据库失足,多是您指定的数据库不存在!");
$query = "insert into Resume(Name,Intro,ResuFile) values('$Name', '$Intro', '$mFileData')";
$result = @mysql_query("$query",$LinkID);
//履行查询,拔出文件到数据库
$query= "select ID,Name,Intro from Resume";
//生成SQL语句
$result = mysql_query($query,$LinkID); //履行,了局集保留到变量$result中
$num= mysql_num_rows($result); //获得查询前往的纪录行数
if($num == 0)
{
echo "没有找就任何纪录";
exit();
}
while($row=mysql_fetch_array($result)) //取了局集的下一行数据到数组$row中
{
echo $row["ID"]." ".$row["Name"]." ".$row["Intro"]." ";
echo "〈a href= \"download.php?ID=".$row["ID"]."\"〉检查Word文档〈/a〉〈br〉";
}
//end of file show.php
?〉
会见文件show.php,用户看到的是团体扼要信息的列表。点击“检查Word文档”,便可看到对应成员具体的团体简历。
Word文档的显示是用上面的文件:
〈?
// begin of file download.php
$LinkID=@mysql_connect("localhost", "root" , "") or die("不克不及毗连到数据库办事器!多是数据库办事器没有启动,或用户名暗码有误!");
$DBID = @mysql_select_db("ResumeDB",$LinkID) or die("选择数据库失足,多是您指定的数据库不存在!");
$query = "select ResuFile from Resume where ID=$ID";
//$ID为挪用传递的变量
$result = @mysql_query("$query",$LinkID);
//履行查询,从数据库读取文件内容
if(mysql_num_rows($result) 〈 1 )
{
echo "没有找到响应的文件!";
exit();
}
$row = mysql_fetch_array($result);
$mFileData = $row["ResuFile"];
//读取团体简历的内容(Word文件格局的数据)
header("Content-type: application/msword");
//发送头信息,申明将要发送的数据为word文档
echo $mFileData;
//发送文档数据
//end of file download.php
?〉
至此,咱们已完成了团体简历的提交、数据库存储、信息阅读等功效,根基完成了“人才网信息交换”的框架功效。
需求申明的是,经由过程PHP停止文件上载及数据库存储是个较凸起的手艺困难。良多关于PHP的网站都不休呈现这类成绩。这些操作,对平台、情况设置依附性较大。分歧的平台设置装备摆设,都能够招致操作的掉败。本文前面附了上述法式的运转平台、编译参数,以供参考。 在学习HTML中我想边学边做是最有效的方式,当然这一方式对于学习PHP同样是最有效的。 |
|