上一节已经在数据库中创建了f_detail表,用来将上传文件信息做归档和记录。下面写一段SQL语句,作用是当文件上传成功时向数据库中写入文件的信息,SQL语句如下:
- INSERT INTO 'download'.'f_detail' ('id' ,'filename' ,'des' ,'fsize' ,
- 'ftype' ,'utime' )
- VALUES (NULL , $filename, $des, $fsize, $ftype,$utime);
下面打开upload.php文件,将信息写入部分代码添加到程序中,需要添加的代码如下:
- <?php
- if (! move_uploaded_file ( $filename, $destination )) {
- echo "<font color='red'>移动文件出错!</a>";
- exit ();
- } else {
- //添加写入数据库的部分
- //创建数据库连接
- $con = mysql_connect ( 'localhost', 'root', '198251' ) or die ( 'Could
- not connect: ' . mysql_error () );
- //echo 'Connected successfully';
- $db = mysql_select_db ( 'download', $con );
- if (! $db) {
- die ( "Can\'t use download : " . mysql_error () );
- } else {
- //将用户信息插入数据库的f_detail表
- $sql = "INSERT INTO 'download'.'f_detail' ('id' ,'fname' ,'des' ,'fsize',
- 'ftype' ,'utime' )VALUES (NULL ,'" . $destination . "' , '', '" . $file
- ["size"] . "', '" . $file ["type"] . "',NOW());";
- $result = mysql_query ( $sql );
- if (! $result) {
- mysql_free_result ( $result ); //释放结果集
- mysql_close ( $db ); //关闭连接
- echo '数据记录插入失败!';
- exit ();
- }
- }
- }
- ?>
注意:SQL语言中有很多内部函数,例如上面的代码中出现的now()函数,其含义是在获得当前系统时间对应数据库字段的datetime()类型,这样就减少了用PHP来处理时间的步骤,提高了效率。
通过以上3个步骤,完成了一个完整的文件上传程序。读者可以根据自己的需要对这个程序进行改造,添加更多的功能。这个核心程序所展示的内部流程是任何与上传相关的程序共同的设计思路。



