Использование PHP для загрузки файла и добавления пути к базе данных MySQL

upload.php:


А вот форма (в отдельном файле):


    <p>Photo:</p>
     
    <p>Description</p>
    
    <br>
    

Ошибки

 Undefined index: Filename on Line 17

($ Filename = $ _ POST ['Имя файла'];)

а также

Undefined index: uploadedfile on Line 35

(эхо "Файл ", базовое имя ($ _FILES ['uploadedfile»] [»Имя файла']). " был загружен, и ваша информация была добавлена в каталог ";)

echo"<pre>".print_r($_FILES,true)."</pre>";

дает мне:

Array
(
    [Filename] => Array
        (
            [name] => Laserkanon.jpg
            [type] => image/jpeg
            [tmp_name] => C:\WampServer\tmp\php11D4.tmp
            [error] => 0
            [size] => 41813
        )

)
 FireCrakcer3717 июн. 2013 г., 21:14
mysql_* функции старые и скоро будут полностью удалены из PHP. Обновите ваш код, чтобы использовать PDO или mysqli, чтобы он продолжал работать в будущем.
 Claudio Ludovico Panetta17 июн. 2013 г., 19:55
Вы должны переупорядочить идею, сначала переместите файл в каталог, затем сохраните его в базе данных.
 The Last Melody17 июн. 2013 г., 19:56
Юпп, избавился от первой ошибки ... Еще так много нужно узнать ...
 showdev17 июн. 2013 г., 19:52
$ _POST [»Имя файла'] не существует. $ _FILES [»uploadedfile»] не существует. $ _FILES [»Имя файла'] существует. Возможно, вы захотите повторить значение $ _FILES, чтобы увидеть структуру массива:echo"<pre>".print_r($_FILES,true)."</pre>";
 bksi17 июн. 2013 г., 19:59
используйте print_r ($ _ FILES) в вашем upload.php, чтобы увидеть его содержимое
 The Last Melody17 июн. 2013 г., 19:57
Nurdglaw, я не имею ни малейшего представления о том, как исправить ошибки ... Ошибки не должны быть там ...
 The Last Melody17 июн. 2013 г., 20:04
@bksi спасибо, обновленный пост с результатом, но он говорит мне, что ошибка = или меньше 0 ...
 The Last Melody17 июн. 2013 г., 20:05
@ClaudioLudovicoPanetta Да, так что, если я поменяю местами INSERT INTO и (move_uploaded), было бы лучше?
 Claudio Ludovico Panetta17 июн. 2013 г., 20:06
@TheLastMelody, по крайней мере, вы нене проблема "файлы-призраки " в твоей БД.
 bksi17 июн. 2013 г., 19:55
в upload.php вы должны использовать $ _FILES, чтобы получить информацию о файле вместо $ _POST ['имя файла']. если вы хотите назвать этот файл из формы, вы должны поставить input type = text name = "имя файла...
 showdev17 июн. 2013 г., 20:01
Чтобы уточнить мой предыдущий комментарий: ошибки указывают, что переменные выпопытки доступа не определены.$_POST['filename'] не появляется в вашей форме.$_FILES['uploadedfile'] не появляется в вашей форме. Поскольку вы не определили их, они не определены.
 The Last Melody17 июн. 2013 г., 19:59
@ClaudioLudovicoPanetta что?
 The Last Melody17 июн. 2013 г., 20:03
@showdev ну как мне их определить?
 The Last Melody17 июн. 2013 г., 20:16
@ClaudioLudovicoPanetta И я надеюсь, что никогда не буду, но зная себя, я доберусь туда тоже ...
 The Last Melody17 июн. 2013 г., 19:54
Если бы у меня была ЛЮБАЯ идея, что бы вы на самом деле имели в виду ... куда этот фрагмент уходит? И спасибо, lopez.mikhael
 Claudio Ludovico Panetta17 июн. 2013 г., 20:02
@TheLastMelody да, потому что подумайте так: вы сохраняете файл, а затем перемещаете его, но если перемещение по какой-либо причине не удается? На вашей БД у вас есть строка НО файлов там нет!

Ответы на вопрос(2)

mysql_connect("localhost", "root", "") or die(mysql_error()) ;
mysql_select_db("altabotanikk") or die(mysql_error()) ;

Это не рекомендуется использовать следующие ..

 // Connects to your Database
            $link = mysqli_connect("localhost", "root", "", "");

и для вставки данных используйте следующее

 $sql = "INSERT INTO  Table-Name (Column-Name)
VALUES ('$filename')" ;
Решение Вопроса

print_r($_FILES) отладить и посмотреть, что в нем содержится. :

вашuploads.php будет выглядеть так:

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

//This gets all the other information from the form
$Filename=basename( $_FILES['Filename']['name']);
$Description=$_POST['Description'];


//Writes the Filename to the server
if(move_uploaded_file($_FILES['Filename']['tmp_name'], $target)) {
    //Tells you if its all ok
    echo "The file ". basename( $_FILES['Filename']['name']). " has been uploaded, and your information has been added to the directory";
    // Connects to your Database
    mysql_connect("localhost", "root", "") or die(mysql_error()) ;
    mysql_select_db("altabotanikk") or die(mysql_error()) ;

    //Writes the information to the database
    mysql_query("INSERT INTO picture (Filename,Description)
    VALUES ('$Filename', '$Description')") ;
} else {
    //Gives and error if its not
    echo "Sorry, there was a problem uploading your file.";
}



?>
 The Last Melody17 июн. 2013 г., 20:24
 The Last Melody17 июн. 2013 г., 20:18
@bksi Извините, те же ошибки: /
 bksi17 июн. 2013 г., 20:19
Вы не можете иметь неопределенный индекс srcFile, потому что я удалил его из кода
 bksi17 июн. 2013 г., 20:16
Да, моя ошибка, кто-то попытался отредактировать мой пост и вернул его с одной версией. Попробуйте с этим. В вашей форме используйте <тип ввода = "файл" имя =»Имя файла "/>
 The Last Melody17 июн. 2013 г., 20:07
Ноно, не пытаясь переименовать файл, я пытаюсь загрузить файл и описание, с ним »оригинальное имя файла
 showdev17 июн. 2013 г., 20:08
Согласно вашему массиву $ _FILES, исходное имя файла хранится в $ _FILES ['Имя файла'] [»название'].
 The Last Melody17 июн. 2013 г., 20:12
@ Showdev это должно быть где-то ...
 bksi17 июн. 2013 г., 20:25
Вопрос в том, что происходит в папке фото?
 The Last Melody17 июн. 2013 г., 20:22
@bksi Почти работает сейчас! Он появился в базе данных с именем файлаArray» который явно не является файлом jpg, который я загрузил ^ _ ^ "
 The Last Melody17 июн. 2013 г., 20:26
Файл появляется вместе с нимИмя файла не отредактировано. Таким образом, улучшение, безусловно, но из-за того, что его нет в базе данных, я могупоказать это: /
 The Last Melody17 июн. 2013 г., 20:13
@bksi Да, теперь у меня 5 ошибок вместо одной: / неопределенный индекс srcFile и +move_uploaded_file() [<a href="function.move-uploaded-file">function.move-uploaded-file</a>]: The second argument to copy() function cannot be a directorymove_uploaded_file() [<a href="function.move-uploaded-file">function.move-uploaded-file</a>]: Unable to move 'C:\WampServer\tmp\php7068.tmp' to 'pics'

Ваш ответ на вопрос