Я не вижу, что мне не хватает. Я пытаюсь разрешить пользователям загружать файл для публикации изображения на веб-сайте социальных сетей, я уже сделал это, чтобы они могли выбрать изображение профиля, и это работает отлично, но по какой-то причине это не работает.
<div class = "midCol"><?php
//show post box
?><form method = "post" action = "<?php echo $_SERVER['PHP_SELF']; ?>">
<div class = "box" style = "width:500px;">
<textarea class = "poster" rows="5" cols="50" id = "area" name = "area" value = "area"
placeholder = "What on your mind?"></textarea><br/>
<input type = "file" id = "picture" name = "picture"/><br/>
<input type = "Submit" value = "Post" name = "post"/><br/>
</div>
</form><?php
и вот PHP в том же скрипте:
//submit post
if (isset($_POST['post']))
{
$postContent = mysqli_real_escape_string($dbc, $_POST['area']);
$newPost_query = "INSERT INTO posts (uid, post, uname) VALUES ('$uid', '$postContent', '$uname')";
$postPicture_query = "UPDATE posts SET picture = postId";
$postContent_exc = mysqli_query($dbc, $newPost_query);
//move uploaded file
echo $_FILES['picture']['tmp_name'];
$pic = mysqli_insert_id($dbc);
move_uploaded_file($_FILES['picture']['tmp_name'], 'images/posts/' . $pic);
mysqli_query($dbc, $postPicture_query);
}
Это немного беспорядочно, потому что я менял его влево и вправо, и я уберу его позже, но кто-нибудь видит, что я делаю неправильно?
Ваша форма отсутствует enctype="multipart/form-data"
измените его на:
<form method = "post" enctype="multipart/form-data" action = "<?php echo $_SERVER['PHP_SELF']; ?>">
который требуется при загрузке файлов.