Неопределенный индекс 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» Это работало раньше и вдруг перестало работать. Что не так с моим кодом?

0

Решение

Проверить с

if (!empty($_FILES['txt1']))

потому что в то время, когда форма не размещена, ничего не будет $_POST['txt1']

а также <FORM METHOD="POST" ACTION="PHP3.php"> должно быть <FORM METHOD="POST" ACTION="PHP3.php" enctype="multipart-formdata"> для загрузки файла.

0

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

  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;
0

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