$_FILES不返回任何内容



所以,我最近查找了如何使用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)

您正在使用输入名称"programName",并试图获得"programName"与$_POST相同。

PHP是区分大小写的,你应该在PHP中使用相同的大小写"$_POST['programName']"

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

尝试更改

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

if(isset($_FILES["userfile" . $i]) && $_FILES["userfile" . $i]['size'] > 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];
    }
}

相关内容

  • 没有找到相关文章

最新更新