2012-04-28 3 views
0

У меня возникла проблема с добавлением образаNameArray, где предполагается отобразить имена файлов, которые были загружены.Как добавить имя загруженного файла?

Проблема заключается в том, что можно сказать, что я ранее загружал 3 файла (cat.png, dog.png и pig.png), когда я обновляю страницу и загружаю другой файл (panda.png), а затем, когда я загружаю файл, он должен отображать «panda.png». Но вместо этого он просто добавляет имя ранее загруженного файла (pig.png), и он не добавляет panda.png.

IT ДИСПЛЕИ:

pig.png 

ДОЛЖНО БЫТЬ:

panda.png 

Если я загрузить другой файл (не освежать страницу), такие как monkey.png, затем снова присоединяет pig.png. Нет monkey.png.

IT ДИСПЛЕИ:

pig.png 
pig.png 

ДОЛЖНО БЫТЬ:

panda.png 
monkey.png 

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

Ниже Javascript кода, где происходит прилагаемые:

<?php 
    session_start(); 

    $idx = count($_POST ['fileImage']) -1 ; 
    $output = isset($_POST ['fileImage'][$idx]) ? $_SESSION ['fileImage'][$idx]['name'] : ""; 

    ?> 

       function stopImageUpload(success){ 

       var imageNameArray = ['<?php echo $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; 

     } 

Ниже 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; 


        } 
       } 

      } 

    $_POST ['fileImage'][] = array('name' => $_FILES ['fileImage']['name']); 

      ?> 

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

ответ

0

почему вы используете сессию? попытайтесь добавить session_destroy(); в конце второго скрипта и первого. Я думаю, что он должен удалить все предыдущие данные, а затем вы знаете больше, в чем проблема.

+0

Если я не использую $ _SESSION, тогда я не смогу получить имя файла из скрипта php. – user1359453

+0

session_destroy не работает. – user1359453

+0

Вы не можете использовать $ _POST? – yair144

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