$ _FILES不返回任何内容

时间:2015-06-01 13:23:00

标签: php mysql file

所以,我最近查了如何使用Blob将文件上传到数据库。这是我找到http://www.php-mysql-tutorial.com/wikis/mysql-tutorials/uploading-files-to-mysql-database.aspx

的教程

我按照本教程编写了这段代码 -

HTML表格 -

                <form action='memberPage.php' method='post' enctype='multipart/form-data'>
                <input type='text' name='programName' placeholder='Program Name'></input>
                <input type='text' name='programPrice' placeholder='Price'></input>
                <div id='uploadFiles'>
                    <input name='userfile1' type='file' onchange='addAnother()'>
                </div>
                <input type='submit' value='Create program' style='cursor:pointer;'></input>
            </form>

PHP UPLOAD($ programName在代码外部指定,看起来像$ programName = $ _ POST [“programName”];)

            for($i = 1; $i < 999;$i++){
                if(isset($_POST["userfile" . $i]) && $_FILES["userfile" . $i]['size'] > 0){
                    $Filename = $_FILES["userfile" . $i]['name'];
                    $finfo = new finfo();
                    $Filetype = $finfo->file($_FILES["userfile" . $i]['tmp_name'], FILEINFO_MIME);
                    $Filesize = $_FILES["userfile" . $i]['size'];
                    $Filetmpname = $_FILES["userfile" . $i]['tmp_name'];
                    $Fileerror = $_FILES["userfile" . $i]['error'];


                    $fp      = fopen($Filetmpname, 'r');
                    $content = fread($fp, filesize($Filetmpname));
                    $content = addslashes($content);
                    fclose($fp);


                    if(!get_magic_quotes_gpc())
                    {
                        $Filename = addslashes($Filename);
                    }

                    mysqli_query($conn, "INSERT INTO upload(name,type,size,content,program) VALUES('
                    '" . $Filename. "','" . $Filetype. "','" . $Filesize . "','" . $content . "','" . $programName . "')");


                }else{
                    $i=999;
                    header("location:memberPage.php");
                }
            }

但是当我提交论坛时,文件返回时没有任何内容,没有名称,大小为零。

我还在这里检查了其他问题并没有找到答案,所以我的猜测是它在我的代码中。

我还要指定onchange ='addAnother()'添加另一个输入,但是它上面有下一个结束号(例如 - userfile1,然后它会添加userfile2)

3 个答案:

答案 0 :(得分:2)

您正在使用输入名称“programName”并尝试使用$ _POST获取“Programname”。

PHP区分大小写您应该在PHP中使用相同的大小写“$ _POST ['programName']”

答案 1 :(得分:1)

我们需要检查文件元素而不是post元素。

尝试更改此

if(isset($_POST["userfile" . $i]) && $_FILES["userfile" . $i]['size'] > 0){

到这个

if(isset($_FILES["userfile" . $i]) && $_FILES["userfile" . $i]['size'] > 0){

答案 2 :(得分:0)

最好将输入名称创建为数组。

 <input name='userfile[]' type='file' onchange='addAnother()'>

并在php中迭代它,如:

if (isset($_FILES["userfile"]) && is_array($_FILES["userfile"])) {
    for ($i=0;$i<count($_FILES["userfile"]);$i++) {
        echo $_FILES["userfile"]["name"][$i];
    }
}