2014-10-30 3 views
0

, поэтому я обыскал в Интернете возможность многозадачности, которая показывает индикатор выполнения при загрузке. Поскольку там много, я быстро нашел тот, который соответствовал моим потребностям.PHP + jQuery Загрузка включает мой сайт снова в статусе

Теперь я столкнулся с проблемой после завершения загрузки. Как только загрузка будет завершена, он должен показать мне статус загрузки «Файл [номер]: имя файла (размер) было загружено» в DIV. Однако это не только показывает мне статус, но и включает в себя мой макет веб-сайта снова как дубликат.

Пожалуйста, может кто-нибудь помочь мне с этим, как я сидел на ней целый день и не мог найти ошибку :(

Это HTML + Форма:

<div id="main"> 
<form id="pupload" action="upload.php" method="POST" enctype="multipart/form-data"> 
    <fieldset class="tabulated"> 
     <table id="down" class="bbcode_table" cellspacing="1"> 
      <thead> 
       <tr class="Cnorm"> 
        <td><input type="file" name="files[]" multiple="multiple" id="files"></td> 
       </tr> 
      </thead> 
      <tbody> 
       <tr class="Cmite"> 
        <td><input id="submit" class="button1" type="submit" value="Upload"></td> 
       </tr> 
      </tbody> 
     </table> 
    </fieldset> 
</form> 
<div class="progress"> 
     <div class="bar"></div> 
     <div class="percent">0%</div> 
</div> 
{msg} 
<div id="status"></div> 

<script> 
    jQuery(document).ready(function ($) { 
    "use strict"; 

var bar = $('.bar'); 
var percent = $('.percent'); 
var status = $('#status'); 

$('form').ajaxForm({ 
beforeSend: function() { 
    status.empty(); 
    var percentVal = '0%'; 
    bar.width(percentVal); 
    percent.html(percentVal); 
}, 
uploadProgress: function(event, position, total, percentComplete) { 
    var percentVal = percentComplete + '%'; 
    bar.width(percentVal); 
    percent.html(percentVal); 
}, 
success: function(data, statusText, xhr) { 
    var percentVal = '100%'; 
    bar.width(percentVal); 
    percent.html(percentVal); 
    status.html(xhr.responseText); 
}, 
error: function(xhr, statusText, err) { 
    status.html(err || statusText); 
} 
}); 

}); 
</script> 
</div> 

Необходимые файлы JQuery . в настоящее время называется в заголовке сайтов

Это PHP код к нему:

<?php 

defined ('main') or die ('no direct access'); 

$main_dir = 'include/downs/public-upload/'; 

// Upload dirs sorted by file types 
$files = $main_dir.'files/'; 
$images = $main_dir.'images/'; 
$media = $main_dir.'media/'; 
$video = $main_dir.'video/'; 

// File extensions 
$files_ext = array('apk','exe','doc','docx','docm','gadget','html','ini','pdf','php','rar','sh','txt','xlsx','zip'); 
$images_ext = array('gif','jpg','JPG','jpe','jpeg','JPEG','png','PNG'); 
$media_ext = array('mp3','ogg','wav'); 
$video_ext = array('avi','mp4','3gp'); 

$msg = ''; 
     // Check rights first to make sure we can put the file in the directory 
     if (!is_writeable ($main_dir)) { 
       $msg = 'The folder "include/downs/<b>public-upload</b>/" requires WRITE (chmod 777) permission!!! Please set the WRITE (chmod 777) permission and reload the page.'; 
     } 
     // Now we can upload our file 
     $tpl = new tpl ('admin/pupload/pupload_upload'); 
      if ($_SERVER['REQUEST_METHOD'] == 'POST' and isset($_FILES['files'])) 
      { 
       // loop all files 
       foreach ($_FILES['files']['name'] as $i => $name) 
       { 
        $pathinfo = pathinfo($name); 

        // if file not uploaded then skip it 
         if (!is_uploaded_file($_FILES['files']['tmp_name'][$i])) 
         continue; 

        // now we can move the uploaded files 
        // IMAGES 
        if (in_array($pathinfo['extension'], $images_ext)) { 

        if (move_uploaded_file($_FILES['files']['tmp_name'][$i], $images . $name)) 
        { 
         $msg .= '<b>File ' .($i+1). ':</b> ' . $name . '&nbsp; (' . niceBytes($_FILES['files']['size'][$i]) . ') <font color="#00FF00">successfully uploaded</font><br />'; 
        } else { 
         $msg .= '<b>File ' .($i+1). ':</b> ' . $name . '&nbsp; (' . niceBytes($_FILES['files']['size'][$i]) . ') <font color="#FF0000">not successfully uploaded</font><br />'; 
        } 
        // FILES 
        } else if (in_array($pathinfo['extension'], $files_ext)) { 

        if (move_uploaded_file($_FILES['files']['tmp_name'][$i], $files . $name)) 
        { 
         $msg .= '<b>File ' .($i+1). ':</b> ' . $name . '&nbsp; (' . niceBytes($_FILES['files']['size'][$i]) . ') <font color="#00FF00">successfully uploaded</font><br />'; 
        } else { 
         $msg .= '<b>File ' .($i+1). ':</b> ' . $name . '&nbsp; (' . niceBytes($_FILES['files']['size'][$i]) . ') <font color="#FF0000">not successfully uploaded</font><br />'; 
        } 
        // VIDEOS 
        } else if (in_array($pathinfo['extension'], $video_ext)) { 

        if (move_uploaded_file($_FILES['files']['tmp_name'][$i], $video . $name)) 
        { 
         $msg .= '<b>File ' .($i+1). ':</b> ' . $name . '&nbsp; (' . niceBytes($_FILES['files']['size'][$i]) . ') <font color="#00FF00">successfully uploaded</font><br />'; 
        } else { 
         $msg .= '<b>File ' .($i+1). ':</b> ' . $name . '&nbsp; (' . niceBytes($_FILES['files']['size'][$i]) . ') <font color="#FF0000">not successfully uploaded</font><br />'; 
        }     
        // MEDIA 
        } else if (in_array($pathinfo['extension'], $media_ext)) { 

        if (move_uploaded_file($_FILES['files']['tmp_name'][$i], $media . $name)) 
        { 
         $msg .= '<b>File ' .($i+1). ':</b> ' . $name . '&nbsp; (' . niceBytes($_FILES['files']['size'][$i]) . ') <font color="#00FF00">successfully uploaded</font><br />'; 
        } else { 
         $msg .= '<b>File ' .($i+1). ':</b> ' . $name . '&nbsp; (' . niceBytes($_FILES['files']['size'][$i]) . ') <font color="#FF0000">not successfully uploaded</font><br />'; 
        } 
        } else { 
         $msg .= '<b>File ' .($i+1). ':</b> ' . $name . '&nbsp; (' . niceBytes($_FILES['files']['size'][$i]) . ') <font color="#FF0000">has an unsupported ending</font><br />'; 
        } 
       } 
      } 
$tpl->set_ar_out(array('msg' => $msg), 0); 
?> 

Загрузка выполняется, когда файлы помещаются в их папки, а также появляется сообщение «Загрузить успешно», но оно включает мой макет сайта снова, как если бы у меня была функция «include()».

Я благодарен за любую помощь, которую я мог бы получить от этого.

+0

Возможно, уборка $ ('# status') раньше? status.html (""); –

+0

Значит, вы имеете в виду поставить status.empty() перед status.html() на успех: function? Я пробовал это, но, к сожалению, ничего не изменил :( –

+0

Возможно, xhr.responseText также возвращает заголовки. В upload.php проверьте заголовки. –

ответ

0

Решения данной проблемы может быть 2:

1- Изменение целевой страницы (upload.php) для печати только те данные, которые вам нужно.

2- В вашем АЯКСЕ функция фильтра «xhr.responseText», чтобы отобразить только те данные, которые вы хотите

я бы решить сам за 1-й варианта делает эхо переменных сообща в upload.php. Затем в случае успеха ajax вы можете попробовать «status.html (data)», если «status.html (xhr.responseText)» все еще извлекает всю страницу.

0

Я думаю, что нашел ошибку! Кажется, это моя система шаблонов, которая делает странные вещи, поскольку заголовок привел меня к настройке нескольких вещей, а затем он отлично работал. Я исправил его, но мне нужно снова его переустановить, поскольку я снова играл с ним;) Спасибо за подсказку ADASein

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

  • Нет связанных вопросов^_^