2

次のコードを使用して単一のファイルをアップロードします。このコードを使用すると、単一のファイルをデータベースにアップロードできます。単一の入力タイプのファイルで複数のファイルを選択して、複数のファイルをアップロードしたい。コードにどのような変更を加える必要があるか複数のファイルをアップロードするには?

<?PHP
INCLUDE ("DB_Config.php");
$id=$_POST['id'];
$fileTypes = array('txt','doc','docx','ppt','pptx','pdf');
$fileParts = pathinfo($_FILES['uploaded_file']['name']);
if(in_array($fileParts['extension'],$fileTypes))
{       
    $filename = $_FILES["uploaded_file"]["name"];
    $location = "E:\\test_TrainingMaterial/";
    $file_size = $_FILES["uploaded_file"]["size"];
    $path = $location . basename( $_FILES['uploaded_file']['name']);
    if(file_exists($path))
    {
        echo "File Already Exists.<br/>";
        echo "Please Rename and Try Again";
    }
    else
    {
        if($file_size < 209715200)
        {   
            $move = move_uploaded_file( $_FILES["uploaded_file"]["tmp_name"], $location . $_FILES['uploaded_file']['name']);
            $result = $mysqli->multi_query("call sp_upload_file('".$id."','" . $filename . "','".$path."')");
            if ($result) 
            {
                do {
                    if ($temp_resource = $mysqli->use_result()) 
                    {
                        while ($row = $temp_resource->fetch_array(MYSQLI_ASSOC)) {
                            array_push($rows, $row);
                        }
                        $temp_resource->free_result();
                    }
                } while ($mysqli->next_result());
            }
            if($move)
            {
                echo "Successfully Uploaded";
            }
            else
            {
                echo "File not Moved";
            }
        }
        else
        {
            echo "File Size Exceeded";
        }
    }
}
else
{
    echo " Invalid File Type";
}
?>

使用されるHTMLは

<form id = "upload_form" method="post" enctype="multipart/form-data"  >
    <input type="file" name="uploaded_file" id="uploaded_file" style="color:black" /><br/>
</form>
4

1 に答える 1

3

基本的に、入力名 [] ブラケットと属性「複数」に追加する必要があります

<form id = "upload_form" method="post" enctype="multipart/form-data"  >
    <input type="file" name="uploaded_file[]" multiple="true" id="uploaded_file" style="color:black" /><br/>
</form>

アップロードされたすべてのファイルは、

$_FILES['uploaded_file']['name'][0]
$_FILES['uploaded_file']['name'][1]

等々

詳細については、 http: //www.php.net/manual/en/features.file-upload.multiple.php をご覧ください。

于 2013-02-20T08:48:25.987 に答える