Вот мой сценарий загрузки файлов, и я получаю следующую ошибку
Notice: Undefined index: fupload in C:\Users\Tuskar\Desktop\Projekt\htdocs\Project IT-Space\Profile\edit_profile_parse.php on line 8
Но в соответствии с этим не должно быть ошибок, потому что я определил индекс. Кажется, у меня нет доступа к массиву $ _FILES, потому что до того, как я получил эту ошибку, я получаю другие подобные ошибки или программа полностью передает if и переходит непосредственно к else (файл не выбран)
Я знаю, что сценарий примитивен и почти не содержит безопасности, но я просто хочу, чтобы он работал первым, прежде чем добавить другие функции, такие как максимальный размер файла или ограничение файлов … 🙁
Вот код, который я использую.
Upload Picture <form action="edit_profile_parse.php" method="get" enctype="multipart/form-data" > <input type="hidden" name="MAX_FILE_SIZE" value="999999999"> </input> <input type="file" name="fupload"> </input> <input type="submit" name="submit" value="Upload"> </input> </form>
Вот php, который обрабатывает форму
if (isset( $_GET['submit'] )) { if (isset($_FILES['fupload'] )) { echo "name: ".$_FILES['fupload']['name']." <br> "; echo "size: ".$_FILES['fupload']['sizw']." <br> "; echo "type: ".$_FILES['fupload']['type']." <br> "; if ($_FILES['fupload']['type'] == "image/gif") { $source = $_FILES['fupload']['tmp_name']; $target = "images/" .$_FILES['fupload']['name']; move_uploaded_file($source, $target) or die ("Error: " .mysql_error()); $size = getImageSize($target); $imgstr = "<img src=\" '".$target."' \">"; echo $imgstr; } else { echo "Problem uploading the file ... "; } } else { echo "No file chosen !! "; } } else { echo "Button not clicked "; }
Вы должны использовать метод формы для POST вместо get.
<form action="edit_profile_parse.php" method="post" enctype="multipart/form-data" >
Убедитесь, что ваш тег FORM имеет метод = «POST». Запросы GET не поддерживают загрузку multipart / form-data.
Надеюсь, это сработает: форма:
<form action="edit_profile_parse.php" method="post" enctype="multipart/form-data" > <input type="hidden" name="MAX_FILE_SIZE" value="999999999"> </input> <input type="file" name="fupload"> </input> <input type="submit" name="submit" value="Upload"> </input> </form>
файл php:
<?php if($_POST) { $max_size = mysql_real_escape_string(strip_tags($_POST['MAX_FILE_SIZE'])); $file = $_FILES['fupload']['name']; if(isset($max_size) && !empty($max_size) && !empty($file)) { $file_type = $_FILES['fupload']['type']; $tmp = $_FILES['fupload']['tmp_name']; $file_size = $_FILES['fupload']['size']; $allowed_type = array('image/png', 'image/jpg', 'image/jpeg', 'image/gif'); if(in_array($file_type, $allowed_type)) { if($file_size < $max_size) { $path = 'images/'.$file; move_uploaded_file($tmp, $path); //if you want to store the file in a db use the $path in the query } else { echo 'File size: '.$file_size.' is too big'; } } else { echo 'File type: '.$file_type.' is not allowed'; } } else { echo 'There are empty fields'; } } ?>
Загрузить изображение
<form action="edit_profile_parse.php" method="POST" enctype="multipart/form-data" > <input type="hidden" name="MAX_FILE_SIZE" value="999999999"> </input> <input type="file" name="fupload"> </input> <input type="submit" name="submit" value="Upload"> </input> </form>
Файл PHP
<?php if (isset( $_POST['submit'] )) { if (isset($_FILES['fupload'] )) { echo "name: ".$_FILES['fupload']['name']." <br> "; echo "size: ".$_FILES['fupload']['size']." <br> "; echo "type: ".$_FILES['fupload']['type']." <br> "; if ($_FILES['fupload']['type'] == "image/gif") { $source = $_FILES['fupload']['tmp_name']; $target = "images/" .$_FILES['fupload']['name']; move_uploaded_file($source, $target) or die ("Error: " .mysql_error()); $size = getImageSize($target); $imgstr = "<img src=\" '".$target."' \">"; echo $imgstr; } else { echo "Problem uploading the file ... "; } } else { echo "No file chosen !! "; } } else { echo "Button not clicked "; } ?>