我正在使用html和php制作一个基于网络的系统,其中一个功能是允许学生将文件上传到数据库,实际上是3个文件。我创建了一个文件类型的输入字段,我确定我的 PHP 是正确的,但有时会出现我不理解的警告并且查询不起作用。但这并不总是发生..通常不会..
这是 HTML 中的字段之一:
<tr><td> <p><span>C.V: </span> </td><td> <input class="contact" type="file" id ="CV" name="CV" value="" required /></p> </td></tr>
这是PHP
//check for CV
if ($_FILES["CV"]["size"] > 0)
{
$fileName = $_FILES['CV']['name'];
$tmpName = $_FILES['CV']['tmp_name'];
$fileSize = $_FILES['CV']['size'];
$fileType = $_FILES['CV']['type'];
//check if larger than 1M
if($fileSize > 1048576) {echo "<p style='color: red;'> Cannot upload <b>CV</b> due to large size. File must be less than 1MB </br> </p>"; $complete= false;}
//check if .PDF ( I need it to be PDF always)
else if($fileType != "application/pdf")
{
echo "<p style='color: red;'> Cannot upload <b>CV</b> file type must be a .PDF only </br> </p>"; $complete= false;}
//everything is fine:
else{
$fp = fopen($tmpName, 'r');
$CV = fread($fp, filesize($tmpName));
$CV = addslashes($CV);
fclose($fp);
if(!get_magic_quotes_gpc())
{
$fileName = addslashes($fileName);
}
echo "<br>CV: File $fileName uploaded with type $fileType and size $fileSize <br>";
}
}
SQL查询:
$qry=" UPDATE student SET CV = '$CV', Transcript='$tran',IELTScertificate='$EC', Status ='$stat' WHERE KSUID ='$KSUID'";
警告:
警告:mysql_query():MySQL 服务器已消失...第 330 行
警告:mysql_query():读取结果集的标题时出错...第 330 行
330. $result=mysql_query($qry);
在数据库中我没有为上传的文件使用表格,我只需要内容但我不关心类型,因为它总是一个 pdf,只要它被存储,我也不关心名称在右栏中。
我不确定这是否是问题所在?但我不这么认为,因为某些文件已成功上传,而其他大小不同的文件则没有。
我在检索文件时面临的另一个问题..当我下载文件时,我正确地将其作为 .pdf 文件获取,但是当我打开它时,它说文件已损坏..我不确定为什么?也许是因为我使用的是本地服务器?虽然我不这么认为,但我已经厌倦了试图弄清楚:(如果有人以前遇到过这样的问题,或者如果你知道如何解决这个问题,请帮助我
HTML:
<a href='updatestudentlist.php?id=".$ksuid."&file=00'>CV</a> <br/>
PHP:
if(isset($_GET['file'])){
$file=intval($_GET['file']);
if($file==00) //I use this cause other files got different numbers
{
$query = "SELECT CV FROM student WHERE KSUID='".$_GET['id']."'";
$result = mysql_query($query) or die('Error, query failed');
list($content) = mysql_fetch_array($result);
header("Content-type: application/pdf");
header("Content-Disposition: attachment; filename=".$_GET['id']."_CV");
echo $content;
exit;
}
}