2012-04-29 67 views
-2

我想追加使用$_POST方法上載的文件的名稱,從php腳本中發佈$_FILES['fileImage']['name']。問題在於文件上傳後,我沒有看到附加的文件名,它只是顯示一個空白。爲什麼在成功上傳文件後不附加文件名?它不附加變量

如果任何人都可以提供一個編碼示例,那麼這將是非常有益的。

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

哪裏是爲上傳文件形式的代碼? (和任何相關的JS)。 – Quentin

回答

1

因爲你正在尋找在$_POST中,對於$_SESSION中的變量。嘗試將其更改爲:

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

好吧,$ _SESSION確實使文件名出現,但它是錯誤的文件名,這就是爲什麼我不想使用$ _SESSION。發生什麼是想象我上傳了文件dog.png,它設想append dog.png的文件名實際上是空白的。現在我刷新瀏覽器。現在,當我上傳另一個文件(cat.png)時,上傳成功後會附加文件名dog.png而不是cat.png。如果你知道這怎麼解決? – user1364441