Неопределенный индекс PHP и HTML при загрузке файлов
Вот мой HTML-код
<HTML>
<HEAD>
<TITLE>Upload a File</TITLE>
</HEAD>
<BODY>
<H1>Upload a File</H1>
<FORM METHOD="POST" ACTION="PHP3.php">
<strong>File to Upload:</strong><br>
<INPUT TYPE="file" NAME="txt1" SIZE="50">
<P><INPUT TYPE="submit" NAME="submit" VALUE="Upload File"></P>
</FORM>
</BODY>
</HTML>
А вот и мой PHP-код
if ($_FILES['txt1'] != '')
{
mkdir("C:/xampp/CIS64/"); //Creates the CIS64 directory
$filename = "C:/xampp/CIS64/"; //Location of where the file will be
copy($_FILES['txt1']['tmp_name'], $filename.$_FILES['txt1']['name']) or die("Couldn't copy the file."); //Copies the uploaded file to the CIS64 directory
}
else
{
die("No input file specified"); //If the file doesn't open, close the program.
}
По какой-то причине я получаю сообщение об ошибке: "Неопределенный индекс: txt1 в C:\xampp\htdocs\PHP3.php в строке 11" Это работало раньше и вдруг перестало работать. Что не так с моим кодом?
2 ответа
- форма должна иметь атрибут 'enctype=multipart/form-data' Пример:
<form action=PHP3.php method=post enctype=multipart/form-data>
- добавить строки в ваш "PHP3.php", такие как
var_dump($_POST);
а такжеvar_dump($_FILES);
и проверить, что внутри - помогает отлаживать! - Место для сохранения я установил с помощью
$location = $_SERVER['DOCUMENT_ROOT'] . '/myuploaddir/' . $filename;
Проверить с
if (!empty($_FILES['txt1']))
потому что в то время, когда форма не размещена, ничего не будет $_POST['txt1']
а также <FORM METHOD="POST" ACTION="PHP3.php">
должно быть <FORM METHOD="POST" ACTION="PHP3.php" enctype="multipart-formdata">
для загрузки файла.