尝试让用户将图片上传到文件夹并查看但不会 工作。我有办法,所以人们可以上传他们的个人资料图片,但它不会让他们上传到那里的画廊。下面是它的代码。我得到的错误是文件不会创建文件并将图像上传到该文件夹,如此... user / robbie / myself / 94399549904fkfkmkd.png
if (isset($_FILES["photo"]["name"]) && isset($_POST["gallery"])){
$sql = "SELECT COUNT(id) FROM photos WHERE user='$log_username'";
$query = mysqli_query($db_conx, $sql);
$row = mysqli_fetch_row($query);
if($row[0] > 14){
header("location: ../message.php?msg=The demo system allows only 15 pictures total");
exit();
}
$gallery = $_POST["gallery"];
$target_dir = "/user/$log_username/$gallery/";
$target_file = $target_dir . basename($_FILES["photo"]["name"]);
if (move_uploaded_file($_FILES["photo"]["tmp_name"], $target_file)) {
echo "The file ". basename( $_FILES["photo"]["name"]). " has been uploaded.";
} else {
echo "Sorry, there was an error uploading your file.";
}
这是用户的表单
$photo_form = '<form id="photo_form" enctype="multipart/form-data" method="post" action="photo_system.php?gallery=yes">';
$photo_form .= '<h3>Hi '.$u.', add a new photo into one of your galleries</h3>';
$photo_form .= '<b>Choose Gallery:</b> ';
$photo_form .= '<select name="gallery" required>';
$photo_form .= '<option value=""></option>';
$photo_form .= '<option value="Myself">Myself</option>';
$photo_form .= '<option value="Family">Family</option>';
$photo_form .= '<option value="Pets">Pets</option>';
$photo_form .= '<option value="Friends">Friends</option>';
$photo_form .= '<option value="Random">Random</option>';
$photo_form .= '</select>';
$photo_form .= ' <b>Choose Photo:</b> ';
$photo_form .= '<input type="file" name="photo" required>';
$photo_form .= '<p><input type="submit" value="Upload Photo Now"></p>';
$photo_form .= '</form>';
答案 0 :(得分:0)
当我在过去遇到类似的问题时,它通常与您将文件移动到不存在的目录有关,或者用户php正在运行,因为没有所需的权限写到那个位置。
首先,我要确保&#39; / user&#39;文件夹存在,并且用户php正在运行,因为可以写入它。临时修复,如果您在Linux上运行,可能是使用以下命令将该文件夹的权限设置为777(任何人都可以读取和写入):
chmod 777 /user
这将有助于排除php写入权限作为故障排除时的问题,但不应将其用作长期解决方案。相反,/ user文件夹的所有者应该设置为运行的用户php,然后将权限设置为755,这只允许该用户写入该位置。
另外,请记住,使用/启动路径会查看文件系统的根目录。如果文件夹位于您的网站目录中,则可能需要完整的绝对路径。例如/ var / www / user。
为了帮助找到它,可能有助于在php中使用getcwd()函数:
http://php.net/manual/en/function.getcwd.php
接下来,确保在写入目录之前创建目录。
http://php.net/manual/en/function.is-dir.php
http://php.net/manual/en/function.mkdir.php
您可能需要在用户名(/ user / $ log_username)和图库(/ user / $ log_username / $ gallery)级别执行上述步骤。