我在创建的PHP文档上传表单上收到以下消息:
警告:fread():提供的参数不是
中的有效流资源/home/admin/upload.php第129行
警告:fread():提供的参数不是
中的有效流资源/home/admin/upload.php第131行
这是我的代码,第129和131行被注释:
<?
if(isset($_POST['upload']))
{
$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); //Line 129
$content = addslashes($content);
fclose($fp); //Line 131
if(!get_magic_quotes_gpc())
{
$fileName = addslashes($fileName);
}
$fileName = str_replace(' ','_',$fileName);
//MySQL Database Connect
include '../includes/dblogin.php';
$query = "INSERT INTO upload_min (name, size, type, content, types ) ".
"VALUES ('$fileName', '$fileSize', '$fileType', '$content', 'minutes')";
mysql_query($query) or die('Error, query failed');
echo "<p align='center'>File $fileName uploaded</p> <p align='center'><a href='index.php'>Go back to Admin</a></p>";
}
?>
我的用户只上传MS Word文档。所以我不知道是不是因为文件名太长了......
我有一个调用dbase并显示文件的页面,并且有.doc和.docx文件....所以我不认为文件扩展名是一个问题...我刚刚上传了.pdf文件和它工作得很好......
人?
答案 0 :(得分:0)
文件是否错误大于php.ini中的upload_max_filesize
参数?
答案 1 :(得分:0)
您是否尝试过var_dump-$ $ FINIL超级全局?那里有文件名吗?您是否在表单中设置了enctype="multipart/form-data"
?
此外,你的第一行应该更像:
if (isset($_FILES['userfile']) && $_FILES['userfile']['error'] == 0)
编辑:
另外,我真的希望你在将内容和所有其他变量插入数据库之前将其转义。
答案 2 :(得分:0)
检查PHP ini的这些变量 * file_uploads * upload_max_filesize * max_input_time * memory_limit * max_execution_time * post_max_size
如果您将其设置为关闭,则第一个显而易见,您的安装将禁用上传。
http://www.radinks.com/upload/config.php
正确配置ini。打印$ _FILE变量。 很可能文件路径错误,文件不可读。
也检查权限。