я не могу переместить загруженное изображение в специальный каталог

Это мой код:

<?php
session_start();

include "connect.php";
$username=$_SESSION['username'];
if(isset($_SESSION['username'])){
$teks= mysql_real_escape_string($_POST['teks']);
$photo= $_POST['photo'];

$path_file = pathinfo($_FILES['photo']['name']);
$type_file   = $_FILES['photo']['type'];
$name_file   = $_FILES['photo']['name'];
$directory   = "image/$nama_file";

if (!empty($lokasi_file)) {
move_uploaded_file($lokasi_file,$direktori); }
$sql=mysql_query("SELECT username from member where username='$username'");

$result=mysql_fetch_array($sql);

mysql_query("Insert into posting (username, pic_post, text_post, location, datetime)  values('$username','$photo','$teks', '$photo', NOW())");

header("Location: member.php");
}
?>

У меня проблема с этим кодом, и я не могу переместить загруженное изображение в /image папка.

0

Решение

Код, который вы написали, полон ошибок

$ photo = $ _POST [‘photo’]; Это неправильно … $ photo = $ _FILES [‘photo’];

Пожалуйста, перейдите по ссылке ниже, вы найдете хороший учебник здесь.

http://www.w3schools.com/php/php_file_upload.asp

Новое редактирование: (Я только что отредактировал ваш код)

<?php
session_start();

include "connect.php";
$username=$_SESSION['username'];
if(isset($_SESSION['username'])){
$teks= mysql_real_escape_string($_POST['teks']);

$photo= $_FILES['photo']['name'];

$path_file = pathinfo($_FILES['photo']['name']);
$type_file   = $_FILES['photo']['type'];
$name_file   = $_FILES['photo']['name'];
$directory   = "image/$nama_file";

$target_file = $directory . basename($_FILES["photo"]["name"]);

if (!empty($lokasi_file)) {
move_uploaded_file($_FILES["photo"]["tmp_name"], $target_file);
}
$sql=mysql_query("SELECT username from member where username='$username'");

$result=mysql_fetch_array($sql);

mysql_query("Insert into posting (username, pic_post, text_post, location, datetime)  values('$username','$photo','$teks', '$photo', NOW())");

header("Location: member.php");
}
?>
0

Другие решения

У вас есть несколько ошибок в вашем коде.
Проверьте этот блок

$photo= $_POST['photo'];
$path_file = pathinfo($_FILES['photo']['name']);
$type_file   = $_FILES['photo']['type'];
$name_file   = $_FILES['photo']['name'];
$directory   = "image/$nama_file";
  • Файлы находятся в $_FILES массив, а не в $_POSTтак ваше фото будет $photo= $_FILES['photo'];

  • Вы никогда не используете $path_fileтак почему так?

  • У вас есть тип, с $nama_file, то есть $name_file

  • Где $lokasi_file а также $direktori родом из? Которые должны быть $_FILES['photo']['tmp_name'] в ход загрузки.

  • Не используйте функции mysql, они устарели. Используйте вместо этого mysqli или PDO.

  • Выход из ваших переменных происходит извне, из-за SQL-инъекции или использования подготовленных операторов.

  • Вы не используете результат вашего первого $sql,

  • Вы не можете хранить $photo в вашей базе данных, потому что это массив

  • добавлять exit; или же die; после перенаправления.

  • Sidenote: Почему вы храните местоположение файла дважды?

Таким образом, ваш окончательный код будет примерно таким, но опять же измените mysql_ функция!

session_start();
include "connect.php";
$username = $_SESSION['username'];
if (isset($_SESSION['username'])) {
$teks = mysql_real_escape_string($_POST['teks']);
$type_file = $_FILES['photo']['type'];
$name_file = "image/" . basename($_FILES['photo']['name']);
if (move_uploaded_file($_FILES["photo"]['tmp_name'], $name_file)) {
//Why is it here, for what? Never used the $res (what is acually $row)
//$sql = mysql_query("SELECT username from member where username='" . mysql_real_escape_string($username) . "'");
//$res = mysql_query($sql);
mysql_query("Insert into posting (username, pic_post, text_post, location, datetime)  ". "values('" . mysql_real_escape_string($username) . "',". " '" . mysql_real_escape_string($name_file) . "',". " '" . $teks . "',". " '" . mysql_real_escape_string($name_file) . "', NOW())");
header("Location: member.php");
die();
}
}
0

Большое спасибо за ответ ..
и вот мой успешно код:

<?php
session_start();

include "connect.php";
$username=$_SESSION['username'];

if(isset($_SESSION['username'])){
$koneksi = mysqli_connect("localhost","root","");
mysqli_select_db($koneksi, "dbjashik");
$teks = $_POST['teks'];
$folder = "image";
$tmp_name = $_FILES["photo"]["tmp_name"];
$name = $folder."/".$_FILES["photo"]["name"];

//to moving the file into /image directory
move_uploaded_file($tmp_name, $name);

//inserting query
$input = mysqli_query($koneksi, "INSERT INTO posting VALUES(null, '$username', '$name' ,'$teks', '$name', NOW() )");header("Location: member.php");
}

?>
0
По вопросам рекламы [email protected]