文件上传与PHP问题

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (61)

我正在尝试在我们的网页上运行文件上传元素,因此客户可以将图片上传给我们。我从代码笔下载了漂亮的图片上传元素

然后我从w3学校获得了PHP代码(完整的代码在底部):

https://www.w3schools.com/php/php_file_upload.asp

浏览器在第一次检查时使用'getimagesize'返回错误。它说:

警告:getimagesize():文件名在第10行的W:\ xampp \ htdocs \ image-upload-preview \ upload.php中不能为空文件不是图像。因此,您的文件未上传。

<form action="upload.php" method="post" enctype="multipart/form-data">
  <h1>Image-upload with preview</h1>
<div class="wrapper">
  <div class="box">
    <div class="js--image-preview"></div>
    <div class="upload-options">
      <label>
        <input type="file" class="image-upload" accept="image/*" name="fileToUpload" />
      </label>
    </div>
  </div>


if(isset($_POST["submit"])) {
$check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
if($check !== false) {
    echo "File is an image - " . $check["mime"] . ".";
    $uploadOk = 1;
} else {
    echo "File is not an image.";
    $uploadOk = 0;
}

}

提问于
用户回答回答于

你得到的警告并没有破坏你的代码。如果您正在调用的文件设置为,则修复警告检查

$checkfile = isset($_FILES['fileToUpload']['tmp_name']) ? $_FILES['fileToUpload']['tmp_name'] : '';

然后

$check = getimagesize($checkfile);

您遇到的问题是文件为空,因此它正在运行您的else语句并使$ uploadOk = 0.尝试找出图像的位置,并确保它放在$ _FILES ['fileToUpload']数组中。

扫码关注云+社区

领取腾讯云代金券