$_FILES[ ][ ] 在 php 中不工作
$_FILES[ ][ ] isn't working in php
这是我制作的 PHP 文件,用于将 jpeg 图像上传到我的服务器。当我加载图像文件并单击 'submit' 按钮时,print_r($_FILES)
正在工作,但所有 $_FILES[][]
都不起作用并且页面显示 OMG empty!
。结果页面和代码如下。这有什么理由吗?我的 PHP 版本是 5.5.14,浏览器是 Chrome,Firefox 和网络服务器是 AWS EC2。
结果
Array ( [file] => Array ( [name] => catcam.jpeg [type] => image/jpeg [tmp_name] => /tmp/phpb4hf4d [error] => 0 [size] => 5427 ) ) OMG empty!
代码
<?php
if (isset($_FILES)) {
print_r($_FILES);
echo $fileName = $_FILES[‘file'][‘name'];
echo $fileTempName = $_FILES[‘file'][‘tmp_name'];
echo $fileType = $_FILES[‘file'][‘type'];
echo $fileSize = $_FILES[‘file'][‘size'];
echo $fileError = $_FILES[‘file'][‘error'];
if (isset($fileName)) {
echo "set!";
}
if (empty($fileName)) {
echo "OMG empty!";
}
}
?>
<html>
<body>
<form action="again.php" method="POST" enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file" />
<br />
<input type="submit" value="Upload" />
</form>
</body>
</html>
您的(编辑过的)代码(仍然)包含弯引号 ‘
并且会破坏其功能。
将其更改为以下内容:
echo $fileName = $_FILES['file']['name'];
echo $fileTempName = $_FILES['file']['tmp_name'];
echo $fileType = $_FILES['file']['type'];
echo $fileSize = $_FILES['file']['size'];
echo $fileError = $_FILES['file']['error'];
如果您有权访问它们,这些应该会在您的日志中触发 500 错误。
错误报告会告诉你哪里出了问题。
将 error reporting 添加到您的文件的顶部,这将有助于查找错误。
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
// rest of your code
旁注:错误报告只应在试运行中进行,绝不能在生产中进行。
这是我制作的 PHP 文件,用于将 jpeg 图像上传到我的服务器。当我加载图像文件并单击 'submit' 按钮时,print_r($_FILES)
正在工作,但所有 $_FILES[][]
都不起作用并且页面显示 OMG empty!
。结果页面和代码如下。这有什么理由吗?我的 PHP 版本是 5.5.14,浏览器是 Chrome,Firefox 和网络服务器是 AWS EC2。
结果
Array ( [file] => Array ( [name] => catcam.jpeg [type] => image/jpeg [tmp_name] => /tmp/phpb4hf4d [error] => 0 [size] => 5427 ) ) OMG empty!
代码
<?php
if (isset($_FILES)) {
print_r($_FILES);
echo $fileName = $_FILES[‘file'][‘name'];
echo $fileTempName = $_FILES[‘file'][‘tmp_name'];
echo $fileType = $_FILES[‘file'][‘type'];
echo $fileSize = $_FILES[‘file'][‘size'];
echo $fileError = $_FILES[‘file'][‘error'];
if (isset($fileName)) {
echo "set!";
}
if (empty($fileName)) {
echo "OMG empty!";
}
}
?>
<html>
<body>
<form action="again.php" method="POST" enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file" />
<br />
<input type="submit" value="Upload" />
</form>
</body>
</html>
您的(编辑过的)代码(仍然)包含弯引号 ‘
并且会破坏其功能。
将其更改为以下内容:
echo $fileName = $_FILES['file']['name'];
echo $fileTempName = $_FILES['file']['tmp_name'];
echo $fileType = $_FILES['file']['type'];
echo $fileSize = $_FILES['file']['size'];
echo $fileError = $_FILES['file']['error'];
如果您有权访问它们,这些应该会在您的日志中触发 500 错误。
错误报告会告诉你哪里出了问题。
将 error reporting 添加到您的文件的顶部,这将有助于查找错误。
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
// rest of your code
旁注:错误报告只应在试运行中进行,绝不能在生产中进行。