Я хочу добавить имя файла, который был загружен с помощью метода $_POST
чтобы отправить $_FILES['fileImage']['name']
из скрипта php. Проблема в том, что после того, как файл был загружен, я не вижу прикрепленного имени файла, он просто показывает пробел. Почему это не добавляет имя файла после успешной загрузки файла?
Если бы кто-нибудь мог предоставить кодированный пример, это было бы очень полезно.
Ниже приведен код Javascript:
<?php session_start(); $output = array(); if(isset($_POST['fileImage'])){ $idx = count($_POST['fileImage']) -1 ; $output[] = isset($_POST['fileImage'][$idx]) ? $_POST['fileImage'][$idx]['name'] : ""; } ?> <script> function stopImageUpload(success) { var imageNameArray = <?php echo json_encode($output); ?>; var result = ''; if (success == 1) { result = '<span class="msg">The file was uploaded successfully!</span><br/><br/>'; for (var i = 0; i < imageNameArray.length; i++) { $('.listImage').append(imageNameArray[i] + '<br/>'); } } else { result = '<span class="emsg">There was an error during file upload!</span><br/><br/>'; } return true; } </script>
Ниже приведен скрипт php, который загружает файл, и этот скрипт находится в отдельном возрасте от функции Javascript:
<?php session_start(); $result = 0; $errors = array (); $dirImage = "ImageFiles/"; if (isset ( $_FILES ['fileImage'] ) && $_FILES ["fileImage"] ["error"] == UPLOAD_ERR_OK) { $fileName = $_FILES ['fileImage'] ['name']; $fileExt = pathinfo ( $fileName, PATHINFO_EXTENSION ); $fileExt = strtolower ( $fileExt ); $fileDst = $dirImage . DIRECTORY_SEPARATOR . $fileName; if (count ( $errors ) == 0) { if (move_uploaded_file ( $fileTemp, $fileDst )) { $result = 1; } } } $_SESSION ['fileImage'][] = array('name' => $_FILES ['fileImage']['name']); ?>
Потому что вы ищете в $_POST
для переменной, которая находится в $_SESSION
. Попробуйте изменить его на:
$output = array(); if(isset($_SESSION['fileImage'])){ $idx = count($_SESSION['fileImage']) -1 ; $output[] = isset($_SESSION['fileImage'][$idx]) ? $_SESSION['fileImage'][$idx]['name'] : ""; }