【问题标题】:Empty _FILES variable空 _FILES 变量
【发布时间】:2014-11-28 15:47:58
【问题描述】:

我正在尝试获取图像保存位置的完整地址,然后我想将其插入 mysql 数据库,但我遇到了一个问题:$file 始终为空。

谁能告诉我问题出在哪里?

如果我使用除了 $_FILES 之外的 $_POST,我可以获得图像名称,但不能获得图像保存位置的地址。

我正在使用这段代码:

<html>
    <head>
    </head>
    <body>
        <form method="POST" enctypte="multipart/form-data">
            <input type="file" name="image">
            <input type="submit" value="Update">
        </form>
        <?php
        echo $file = $_FILES['image']['tmp_name'];
        ?>
    </body>
</html>    

【问题讨论】:

  • 使用move_uploaded_file 将文件移动到您想要的位置。
  • 您的加密拼写错误。应该是enctype
  • enctype="multipart/form-data" 不是encrypte="multipart/form-data"
  • 我将 encrypte 更改为 enctype 但仍然是同样的问题
  • 查看 Marc 的回答并阅读手册php.net/manual/en/function.move-uploaded-file.php

标签: php mysql image upload webpage


【解决方案1】:

$_FILES 在您完成上传之前不会被填充。当你第一次点击表单时,你会输出一个未定义的数组。

基本上,您需要检查是否执行了上传:

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
   if (isset($_FILES['image'])) {
       if ($_FILES['image']['error'] !== UPLOAD_ERR_OK) {
           die("Upload failed with error code " . $_FILES['image']['error']);
       }
       echo $_FILES['image']['tmp_name'];
   }
}

【讨论】:

  • OP 的代码错误encrypte="multipart/form-data" 这是大失败的开始。
  • 看起来这个人已经死在水里了。哦,好吧,你能做什么。
猜你喜欢
  • 1970-01-01
  • 2011-08-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多