我在编译php时遇到这些错误
上载文件失败!
数组([type] => 2 [message] => move_uploaded_file():无法将'/ tmp / phpuFeMBl'移动到'upload / horaizontal-hilly-evening.jpg'[file]
=> /var/www/html/directoryUpload/index.php [line] => 10)
在此之前,我遇到了类似>>的错误
上载文件失败!
数组([type] => 2 [message] => move_uploaded_file()期望参数1为字符串,给定数组为[file] =>
/var/www/html/directoryUpload/index.php [line] => 9)
实际上,我需要将一些项目作为实践项目上传并显示到我的投资组合站点中。
我在php文件附近有上载文件夹。
PHP代码
<?php
$count = 0;
$uploads_dir = 'upload/';
if ($_SERVER['REQUEST_METHOD'] == 'POST'){
foreach ($_FILES["files"]["name"] as $key => $name) {
if (move_uploaded_file($_FILES['files']['tmp_name'][$key], 'upload/'.$name)) {
$count++;
echo "<P>FILE UPLOADED TO: $target_file</P>";
} else {
echo "<P>MOVE UPLOADED FILE FAILED!</P>";
print_r(error_get_last());
}
}
}
?>
HTML代码
<!DOCTYPE HTML>
<html>
<head>
<title>Directory Upload using webkidriectory</title>
</head>
<body>
<div class="wrap">
<?php
if ($count > 0) {
echo "<p class='msg'>{$count} files uploaded</p>\n\n";
}
?>
<form method="post" enctype="multipart/form-data">
<input type="file" name="files[]" id="files" multiple="" directory="" webkitdirectory="" mozdirectory="">
<input class="button" type="submit" value="Upload" />
</form>
</div>
</body>
</html>
最佳答案
例如,如果您在Debian服务器上使用apache运行脚本,则该脚本由名为www-data和组www-data的用户执行。在这种情况下,您应该使用以下命令将上传文件夹的所有者更改为www-data
chown www-data:www-data uploads
并且要确保允许新所有者写信给您,应通过以下方式授予他读写权限:
chmod 644 uploads
我怀疑缺少写权限是您失败的原因。
另一种简单但安全性较低的方法是将chmod更改为777,而不管所有者如何。但这意味着任何用户都可以读写并执行该文件夹。