PHP文档上传表单 - 错误消息

时间:2010-11-05 19:59:25

标签: php

我在创建的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文件和它工作得很好......

人?

3 个答案:

答案 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变量。 很可能文件路径错误,文件不可读。

也检查权限。

http://www.w3schools.com/PHP/php_file_upload.asp

相关问题