php - 在mysql查询中插入文件大小列

标签 php mysql file-upload

我正在尝试将文件大小列添加到我的 mysqli 查询中,但我不确定在该循环内执行此操作的正确方法。我只是尝试了$_FILES[文件][大小]。但我并不希望这会奏效。谁能启发我实现这一目标的正确方法。谢谢

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

最佳答案

假设您的 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

检索

关于php - 在mysql查询中插入文件大小列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15397574/

相关文章:

php - 检查文件名相同但扩展名不同的文件

php - 获取中午 PHP 的时间戳

javascript - 具有单个 sql 查询的 PHP 分页

php - 外键与 SET 数据类型 MySQL

php - 编辑数据库的 HTTP 请求

node.js - Connect 1.8.0 - 多部分支持 - 强大的报告进度 - 大文件?

java - 在 http 请求之间保留文件

php - Symfony2 "FatalErrorException: Compile Error: Cannot redeclare class"时不时

php - 带有 RAND() 和子句的 MySQL 随机记录

php - 如何找出 PHP 中 MySQL 错误与哪一列相关?