Ошибка при перемещении загруженных файлов - PullRequest
0 голосов
/ 14 ноября 2011

Я попытался загрузить изображение в каталог на моем сервере с кодом ниже.Однако, когда я запускаю его, я получаю эту ошибку:

Предупреждение: move_uploaded_file (images /) [function.move-uploaded-file]: не удалось открыть поток: есть каталог в/home/a2943534/public_html/add.php в строке 24

Предупреждение: move_uploaded_file () [function.move-uploaded-file]: невозможно переместить '/ tmp / php7yEkDe' в'images /' в /home/a2943534/public_html/add.php в строке 24

Что мне здесь не хватает, пожалуйста?

<?php
include_once("connect.php");
?> 
<?php 

 //This is the directory where images will be saved 
 $target = "images/"; 
 $target = $target . basename( $_FILES['photo']['title']); 

 //This gets all the other information from the form 
 $title=$_POST['title'];
 $name=$_POST['name']; 
 $describe=$_POST['describe']; 
 $pic=($_FILES['photo']['title']);
 $url=$_POST['url'];
 $country=$_POST['country'];
 $endDate=$_POST['endDate']; 


 //Writes the information to the database 
 mysql_query("INSERT INTO `authors` VALUES ('$title', '$name', '$describe', '$pic', '$url', '$country', '$endDate')") ; 

 //Writes the photo to the server 
 if(move_uploaded_file($_FILES['photo']['tmp_name'], $target)) 
 { 

 //Tells you if its all ok 
  $result =  "The file ". basename( $_FILES['uploadedfile']['name']). " has been uploaded, and your information has been added to the directory"; 
 } 
 else { 

 //Gives and error if its not 
 $result =  "Sorry, there was a problem uploading your file."; 
 } 
 ?> 
<?php
// if the form has been submitted, display result
if (isset($result)) {
  echo "<p><strong>$result</strong></p>";
  }
?>

Ответы [ 4 ]

0 голосов
/ 14 ноября 2011

Помимо проблемы внедрения SQL-кода, которая, как представляется, присутствует в каждом вопросе PHP, в котором описывается MySQL здесь, в SO, вам следует начать отладку.

Вы получаете довольно четкую ошибку, в какой строке и какой вызов функции вызывает ошибку. Посмотрите ошибку в Google, прочитайте руководство для функций, которые вы используете.

Короче говоря: вы должны создать две переменные, распечатать их перед вызовом функции и выяснить, в чем дело.

<?php

$source = $_FILES['photo']['tmp_name'];
$target = "images/" . basename( $_FILES['photo']['title']); 

echo "Moving '$source' to '$target'";

move_uploaded_file($source, $target);

Вы сразу увидите, где произошла ошибка.

0 голосов
/ 14 ноября 2011

ошибка очевидна и не требует пояснений.
второй параметр должен быть имя файла , а не каталог.

0 голосов
/ 14 ноября 2011

вместо написания

$target = $target . basename( $_FILES['photo']['title']);

вы должны написать

$target = $target . basename( $_FILES['photo']['name']); 

я думаю, что нет ничего похожего на $ _FILES ['photo'] ['title'] ..

0 голосов
/ 14 ноября 2011

Я думаю, вы ошиблись с

$target = $target . basename( $_FILES['photo']['title']); 

Что должно быть

$target = $target . basename( $_FILES['photo']['name']); 

Это потому, что заголовок не существует в $ _FILES ['photo']

Также эта ошибка гласит:

Unable to move '/tmp/php7yEkDe' to 'images/' in /home/a2943534/public_html/add.php on line 24

В изображениях / не указано ваше имя файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...