2013-03-13 50 views
0

我正在尝试将文件大小列添加到我的mysqli查询中,但我不确定正确的方法是否在此循环中执行此操作。我只尝试$_FILES[file][size]。但我不希望这会奏效。任何人都可以启发我,以实现这一目标的正确方法。由于在mysql查询中插入filesize列

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]')"); 
} 
} 
+0

检索您的输入文件的名称是什么? – MatRt 2013-03-13 22:33:20

+0

文件输入名称是'文件' – user2014429 2013-03-13 22:34:28

回答

1

Assumig你在你的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