/ Przesyłanie pliku / HTML / PHP nie odbiera - php, html, iframe, przesyłanie pliku, przesyłanie

Przesyłanie plików HTML / PHP Nie odbiera - php, html, iframe, wgrywanie plików, przesyłanie

Zadałem więc wcześniejsze pytanie tutaj: Przekazać plik

Próbowałem rozwiązań, ale teraz, bez względu na to, czy jest to prawidłowy typ pliku, czy nie, po prostu mówi „nieprawidłowy plik”. Oto mój HTML:

<form action="upload_file.php" method="post" enctype="multipart/form-data" target="my_iframe">
Select a file: <input type="file" name="upload">
<input type="submit">
</form>

A oto mój upload_file.php:

$allowedExts = array("doc", "docx");
$extension = end(explode(".", $_FILES["file"]["upload"]));

if (($_FILES["file"]["size"] < 200000)
&& in_array($extension, $allowedExts)) {
if ($_FILES["file"]["error"] > 0)
{
echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
}
else
{
echo "Upload: " . $_FILES["file"]["upload"] . "<br />";
echo "Type: " . $_FILES["file"]["type"] . "<br />";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";

if (file_exists("Proposals/" . $_FILES["file"]["upload"]))
{
echo $_FILES["file"]["upload"] . " already exists. ";
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"],
"Proposals/" . $_FILES["file"]["upload"]);
echo "Stored in: " . "Proposals/" . $_FILES["file"]["upload"];
}
}
} else {
echo "Invalid file";
}

Próbowałem również:

$extension = pathinfo( $_FILES["file"]["upload"], PATHINFO_EXTENSION);

I zrobił

die($extension);

Na obu, ale nic zostaje wydrukowane. Mam więc dwa pytania
1) Co jest nie tak z moim powyższym kodem
2) Jak ukryć ramkę iframe, dopóki nie otrzymam odpowiedzi? a następnie mieć jak dobry przycisk, aby zniknął, gdy użytkownik przeczyta odpowiedź? Oto kod iframe, jeśli pomaga:

<iframe name="my_iframe" src="upload_file.php"></iframe>

Odpowiedzi:

2 dla odpowiedzi № 1

Zmiana

$_FILES["file"]["upload"]

Do

$_FILES["upload"]["name"]

Wszędzie i tak samo z innymi odniesieniami. Więc;

$_FILES["file"]["size"] **To** $_FILES["upload"]["size"]

I

$_FILES["file"]["type"] **To** $_FILES["upload"]["type"]

I

$_FILES["file"]["tmp_name"] **To** $_FILES["upload"]["tmp_name"]

1 dla odpowiedzi nr 2

Ty masz:

if (($_FILES["file"]["size"] < 200000) && in_array($extension, $allowedExts)) {

Powinien to być $ _FILES [„upload”] [„size”], ponieważ masz

<input type="file" name="upload">

1 dla odpowiedzi nr 3

Sprawdź ten samouczek: http://www.w3schools.com/php/php_file_upload.asp

Powinien to być $ _FILES [„upload”] Popełniłeś błąd


1 dla odpowiedzi nr 4

Zmiana

$_FILES["file"]["size"]

do

$_FILES["upload"]["size"]

i zrobić to samo dla wszystkich innych zmiennych, atrybut nazwy pliku wejściowego to Przekazać plik, nie plik, zgodnie z Twoim HTML:

<input type="file" name="upload">
HERE ----^