0

ファイル サイズの列を mysqli クエリに追加しようとしていますが、このループ内でこれを行う適切な方法がわかりません。私はちょうど試してみました$_FILES[file][size]。しかし、これがうまくいくとは思っていませんでした。これを達成するための正しい方法について誰かが教えてくれますか。ありがとう

 foreach  ($_FILES['file']['name'] as $key => $name) {

  if(move_uploaded_file($_FILES['file']['tmp_name'][$key],"test/$name"))
 {
  mysqli_query($db,"INSERT INTO files VALUES('$_GET[draft]','$name','$_FILES[file][size]')");
 }
}
4

1 に答える 1

1

HTMLコードにあると仮定します

<form action="" method="POST" enctype="multipart/form-data">
    <input type="file" name="myFile1" />
    <input type="file" name="myFile2" />
    ....
    ...// other input and your submit input
</form>

$_FILESあなたの意志の構造は

Array
(
    [myFile1] => Array
        (
            [name] => XXX
            [type] => XXX
            [tmp_name] => XXX
            [error] => UPLOAD_ERR_OK  (= 0)
            [size] => XXXX
        )

    [myFile2] => Array
        (
            [name] => XXXX
            [type] => XXXX
            [tmp_name] => XXXX
            [error] => UPLOAD_ERR_OK
            [size] => XXXX
        )
    etc..
)

それからあなたはすることができます

// Loop on each entry of $_FILES
foreach($_FILES as $nameOfInputFile => $fileStructure) {

    // Check the error status first, skip the file if an error occured
    if ($fileStructure['error'] != UPLOAD_ERR_OK)
        continue;

    // $fileStructure contain the current file data
    if(move_uploaded_file($fileStructure['tmp_name'],"test/" . $fileStructure['name']))
    {
        mysqli_query($db,"INSERT INTO files VALUES('" . $_POST['draft'] . "','$name','" . $fileStructure['size'] . "')");
    }

}

注:ファイルを投稿しているとき、ドラフト値は次のように取得する必要があります$_POST

于 2013-03-13T22:40:51.350 に答える