Неопределенный индекс 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 ответа

  1. форма должна иметь атрибут 'enctype=multipart/form-data' Пример: <form action=PHP3.php method=post enctype=multipart/form-data>
  2. добавить строки в ваш "PHP3.php", такие как var_dump($_POST); а также var_dump($_FILES); и проверить, что внутри - помогает отлаживать!
  3. Место для сохранения я установил с помощью $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"> для загрузки файла.

Другие вопросы по тегам