isset()在文件中返回false

时间:2016-10-27 20:26:27

标签: php html

我试图创建一个有上传按钮的简单页面,我将其名称更改为" Upload"而不是"选择文件",我也想要一个按钮,而不是"选择"文件和"提交"的按钮。

<!DOCTYPE html>
<html>
<head>
<style>
input[type="file"] {
    display: none;
}
.custom-file-upload {
    background-color: #0fffff;
}
</style>
</head>
<body>
<form action="" name="file" method="post" enctype="multipart/form-data">
<label for="file-upload" class="custom-file-upload">
    <i class="fa fa-cloud-upload"></i> Upload
</label>
<input id="file-upload" type="file" />
</div>
</form>

<?php
if(isset($_FILES['file'])) {
    echo"file exists";
}
else {
    echo"file doesn't exist";
}

?>
</body>
</html>

该行:

if(isset($_FILES['file']))

总是返回false,我也尝试过:

使用!empty() 我必须使用type="file"的形式,因为我只想要一个按钮,&#34;上传&#34;按钮,同时上传和提交。

我不确定我在哪里出错,任何帮助都会非常感激!

1 个答案:

答案 0 :(得分:4)

当用户选择文件时,您需要使用Javascript提交表单。

您需要为文件输入命名,以匹配$_FILES中的密钥。

document.getElementById("file-upload").addEventListener("change", function() {
  this.form.submit();
});
<form action="" method="post" enctype="multipart/form-data">
  <label for="file-upload" class="custom-file-upload">
    <i class="fa fa-cloud-upload"></i> Upload
  </label>
  <input id="file-upload" type="file" name="file" />
  </div>
</form>