表单包含一个文件输入,但表单上缺少method=POST和enctype=multipart/Form数据,将不会发送该文件

rbpvctlc  于 2022-10-22  发布在  PHP
关注(0)|答案(1)|浏览(253)

我正在学习PHP教程,但无法克服这个问题:
Form contains a file input, but is missing method=POST and enctype=multipart/form-data on the form. The file will not be sent.
Picture of Problem
我已经仔细检查以确保所有文件都有权限,我已经复制粘贴了教程中的确切代码,到目前为止没有任何效果。我见过其他类似的问题,但他们的答案都没有奏效。
这是我的代码:

<?php
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["ftrImg"]["name"]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));

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

    <form action="" formMethod="POST" formEncType="multipart/form-data">

        Upload your picture:
        <input type="file" name="ftrImg" id="ftrImg">
        <input type="submit" value="upload" name="sbtImg">

    </form>

methodenctype替换为formMethodformEncType清除了我得到的错误500,但没有解决这个问题。仅供参考,我在linux上使用XAMPP服务器。
关于这个警告,我不明白的是我的表单上有methodenctype

mxg2im7a

mxg2im7a1#

<form action="" formMethod="POST" formEncType="multipart/form-data">不正确,应该是<form method="POST" enctype="multipart/form-data">~如果目标是同一页,可以省略action属性
Professor Adronsius的评论解决了这个问题。我现在可以成功上传文件了。谢谢

  • 顺便说一句,即使我将PHP分离到另一个文件中,它也能工作——这很奇怪,因为它以前也从未工作过。让别人看看你的代码,让它工作起来真是太神奇了*

相关问题