2012-04-24 3 views
-4

У меня есть переменная $ _SESSION, которая должна отображать имена файлов, которые были загружены. Проблема в том, что он этого не делает, он отображает только имя файла только для 1 файла и только для 1 файла. Например, если я загружаю файлы «jellyfish.png» и «tulips.png», он должен отображать имена файлов «jellyfish.png» и «tulips.png» для $_SESSION['fileImage'];, но вместо этого он отображает оба имени файла в качестве имени это: «jellyfish.png» и «jellyfish.png».только отображает одно имя файла

Когда я делаю var_dump($_SESSION ['fileImage']); для примера выше, он выводит это: string(13) "Jellyfish.jpg", независимо от того, какой файл загружен. Если я обновляю браузер и скажу, что последний файл, который я загрузил на сервер, был «tulips.png», то он выводит это: string(10) "tulips.jpg", для каждого файла независимо от того, какой файл загружен до следующего обновления.

Кто-нибудь знает, как исправить это, чтобы отображать правильные имена файлов для каждого загруженного файла под переменной $ _SESSION?

Ниже PHP скрипт:

<?php 

session_start(); 

$dirImage = "ImageFiles/"; 

if (isset ($_FILES ['fileImage']) && $_FILES ["fileImage"] ["error"] == UPLOAD_ERR_OK) { 

    $_SESSION ['fileImage'] = $_FILES ['fileImage']['name']; 

    $fileName = $_FILES ['fileImage'] ['name']; 

    $fileExt = pathinfo ($fileName, PATHINFO_EXTENSION); 
    $fileExt = strtolower ($fileExt); 


    $fileDst = $dirImage . DIRECTORY_SEPARATOR . $fileName; 
    $filePrifix = basename ($fileName, "." . $fileExt); 
    $i = 0; 
    while (file_exists ($fileDst)) { 
     $i ++; 
     $fileDst = $dirImage . DIRECTORY_SEPARATOR . $filePrifix . "_" . $i . "." . $fileExt; 


    } 
    // Move the file 

    if (count ($errors) == 0) { 
     if (move_uploaded_file ($fileTemp, $fileDst)) { 
      $result = 1; 


     } 
    } 

} 

?> 

    <script language="javascript" type="text/javascript">window.top.stopImageUpload(<?php echo $result;?>);</script> 

Ниже приведен код Javascript, который содержит JSON:

function stopImageUpload(success){ 

     var imagename = <?php echo json_encode(isset($_SESSION ['fileImage']) ? $_SESSION ['fileImage'] : null); ?>; 
     var result = ''; 
     if (success == 1){ 
     result = '<span class="msg">The file was uploaded successfully!</span><br/><br/>'; 
     $('.listImage').append(imagename + '<br/>'); 
     } 
     else { 
     result = '<span class="emsg">There was an error during file upload!</span><br/><br/>'; 
     } 

return true; 

} 

<?php 
var_dump($_SESSION ['fileImage']); 
?> 
+9

Почему вы удаления и повторного добавления этот вопрос ???? У некоторых из нас есть хорошая память, которую вы знаете – Baba

+0

Возможный дубликат [где для отображения переменной $ _SESSION ниже] (http://stackoverflow.com/questions/10278801/where-to-display-session-variable-below) – Baba

ответ

3

сессия не работает, потому что вы скопировали сценарий, написанный мной и удалил вопрос , не добавляя его в качестве нового вопроса в третий раз. Если вы написали сценарий самостоятельно, вы должны были бы исправить эту простую ошибку.

Пусть это будет Самый последний раз вы такие

Заменить

$_SESSION ['fileImage'] = $_FILES ['fileImage']['name']; 

с

$_SESSION ['fileImage'][] = $_FILES ['fileImage']['name']; 
+1

haha ​​busssteeeddd –

+1

'Пусть это будет в последний раз, когда вы это делаете :) :) – undefined

+0

@Baba Причина, по которой я удалил этот вопрос, состоял в том, что ваш ответ в предыдущем вопросе не решил ничего (поскольку люди видели меня и вы работали над ответом в предыдущем вопросе, я считают, что они не пытались добавить свой собственный ответ), и он все еще не решает проблему. Если я изменю переменную $ _SESSION на то, что вы заявили, она не работает, так как она продолжает показывать «null» при добавлении $ _SESSION. Я удалил предыдущий вопрос, потому что у меня только 27 просмотров через 10 часов, по этому вопросу я получил 23 просмотров за 11 минут. Вот почему я удалил предыдущие вопросы и добавлю этот вопрос – user1349470

Смежные вопросы