2012-04-29 2 views
-2

PHP 스크립트에서 $_FILES['fileImage']['name']을 게시하려면 $_POST 메서드를 사용하여 업로드 한 파일의 이름을 추가하고 싶습니다. 문제는 파일 업로드가 끝난 후에 파일 이름이 추가되지 않는다는 것입니다. 단지 공백으로 표시됩니다. 파일을 성공적으로 업로드 한 후 파일의 이름을 추가하지 않는 이유는 무엇입니까?변수를 추가하지 않습니다.

누구든지 코드 예제를 제공 할 수 있다면 매우 유용 할 것입니다. 다음은

는 자바 스크립트 코드입니다 : 아래
<?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 스크립트이며,이 스크립트는 자바 스크립트 함수로부터 별도의 나이에 : 당신이 찾고 있기 때문에

<?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']); 
?> 
+2

파일을 업로드하는 양식의 코드는 어디에 있습니까? (그리고 관련된 JS). – Quentin

답변

1

$_SESSION에있는 변수는 $_POST입니다. 변경하려면 다음으로 변경하십시오.

$output = array(); 
if(isset($_SESSION['fileImage'])){ 
    $idx = count($_SESSION['fileImage']) -1 ; 
    $output[] = isset($_SESSION['fileImage'][$idx]) ? 
     $_SESSION['fileImage'][$idx]['name'] : ""; 
} 
+0

OK, $ _SESSION은 파일 이름을 표시하지만 잘못된 파일 이름이므로 $ _SESSION을 사용하고 싶지 않습니다. 실제로 dog.png 파일을 업로드했다고 가정하면 dog.png를 추가한다고 가정하는 파일 이름이 실제로 비어 있습니다. 이제 브라우저를 새로 고칩니다. 이제 다른 파일 (cat.png)을 업로드 할 때 업로드가 성공하면 cat.png가 아니라 dog.png라는 파일 이름이 추가됩니다. 당신이 알고 있다면 어떻게 고칠 수 있습니까? – user1364441

관련 문제