【发布时间】:2014-06-19 10:38:36
【问题描述】:
我正在研究 MySQL 和 PHP,对于我的第一部作品,我已经开始在审查小组工作。您可以简单地将您的产品评论上传到数据库,稍后直接从面板(在本例中为本地网站)浏览它们。
问题是,我不知道如何在上传时控制所有文件格式,除了 .pdf!更清楚地说:我只希望我的上传表单接受要上传的 .pdf 文件。目前它没有任何限制,这是我的代码:
<?php
if(isset($_POST['upload']) && $_FILES['userfile']['size'] > 0)
{
$revName = $_POST['revname'];
$revRating = $_POST['rating'];
$revRecommend = $_POST['recommend'];
$fileName = $_FILES['userfile']['name'];
$tmpName = $_FILES['userfile']['tmp_name'];
$fileSize = $_FILES['userfile']['size'];
$fileType = $_FILES['userfile']['type'];
$fp = fopen($tmpName, 'r');
$content = fread($fp, filesize($tmpName));
$content = addslashes($content);
fclose($fp);
if(!get_magic_quotes_gpc())
{
$fileName = addslashes($fileName);
}
rename($tmpName,"C:\\xampp\\htdocs\\ReviewArchieve\\files\\reviews\\".$fileName);
include 'include/config.php';
include 'include/opendb.php';
$query = "INSERT INTO files (revname, rating, recommend, name, size, type, content)".
"VALUES ('$revName', '$revRating', '$revRecommend', '$fileName', '$fileSize', '$fileType', '$content')";
mysql_query($query) or die('Error, query failed'.mysql_error());
include 'include/closedb.php';
echo "<br>File $fileName uploaded<br>";
}
?>
搞定了!
感谢 MIME 推荐,我设法学到了一些新东西,并通过一点调查完成了我的任务!这不是正确答案中提供的代码部分,在我的情况下根本不起作用,无论我做什么,而是我使用了这种方法:
我注意到我已经包含了文件类型。 $fileType = $_FILES['userfile']['type'];
所以现在我只需要从中创建一个 if,如下所示:
if($fileType == 'application/pdf') {
*** Code to be driven here, same as above on the original code ***
}
else {
echo "Invalid file, upload interrupted!";
}
【问题讨论】:
-
对这个系统的任何整体改进也将受到高度赞赏!我知道它看起来很乱,而且文件路径有点笨,但我仍在寻找使它们更...可操作的方法?