php - 为什么我不能用 PHP 上传文件?
问题描述
我无法在 CentOS 服务器上上传 PHP 文件。这是脚本的一个非常基本的版本。它没有显示错误,但上传的文件在 /tmp 中不存在。
<?php
echo "<pre>";
print_r($_FILES);
echo "</pre>";
move_uploaded_file($_FILES['image']['tmp_name'],"/tmp/uploaded");
?>
<html>
<body>
<form action="" method="POST" enctype="multipart/form-data">
<input type="file" name="image" />
<input type="submit"/>
</form>
</body>
</html>
/tmp
由具有权限 drwxrwxrwt 的 root 所有。SELinux 是允许的。我验证了 apache 用户可以在这里写sudo -u apache touch /tmp/asdf
upload_tmp_dir
未在 php.ini 中定义,因此我希望它使用系统默认值/tmp
。我用 验证了这一点sys_get_temp_dir()
。
$_FILES
变量看起来不错:
Array
(
[image] => Array
(
[name] => antergos.jpeg
[type] => image/jpeg
[tmp_name] => /tmp/phpqhhhxL
[error] => 0
[size] => 924202
)
)
我尝试添加一个sleep(10)
,以便在脚本完成之前有时间检查,并且它没有向/tmp
.
解决方案
您必须在 php.ini 中定义 upload_tmp_dir 否则它将不起作用。
推荐阅读
- r - 在 Spark 集群上安装 glm2
- c++ - 现代 CMake:有没有办法使用 CMakePresets.json 构建外部项目?
- php - MongoDB/DocumentDB bson_append_array():检测到无效数组。数组参数的第一个元素不是“0”
- php - 如何使我的 SQL 查询更高效,以便我的结果处理不会花费很长时间
- javascript - 如何检查 Kurento 媒体服务器的流量
- c# - 如何在20停止它?
- tabulator - 更改图标/按钮列的格式
- java - 如何从 javaFX 文本字段中获取 UserInput:
- python - 鉴于有很多商店(熊猫),从上一期获取商店的销售额
- retrofit2 - 将 ActivityTestRule 更新为 ActivityScenario