Advertisement
SX2

Untitled

SX2
Nov 29th, 2015
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.19 KB | None | 0 0
  1. 1.0 feedback.tpl добавил:
  2.  
  3. <tr>
  4.             <td class="label" valign="top">
  5.                 Файл:
  6.             </td>
  7.             <td><input type="file" maxlength="45" name="file" class="f_input" /></td>
  8.         </tr>
  9.  
  10. 2.0 в engine/ajax создал файл upload_screen.php с содержимым:
  11.  
  12. <?php
  13.  
  14. @error_reporting ( E_ALL ^ E_WARNING ^ E_NOTICE );
  15. @ini_set ( 'display_errors', true );
  16. @ini_set ( 'html_errors', false );
  17. @ini_set ( 'error_reporting', E_ALL ^ E_WARNING ^ E_NOTICE );
  18.  
  19. define( 'DATALIFEENGINE', true );
  20. define( 'ROOT_DIR', substr( dirname(  __FILE__ ), 0, -12 ) );
  21. define( 'ENGINE_DIR', ROOT_DIR . '/engine' );
  22.  
  23. include ENGINE_DIR . '/data/config.php';
  24.  
  25. $title = isset($_REQUEST['title']) ? $_REQUEST['title'] : 'none';
  26.  
  27. foreach( $_FILES as $file ) {
  28.     $file_ext = @end(explode('.', $file['name']));
  29.    
  30.     if( in_array($file_ext, array('jpg', 'jpeg', 'gif', 'png')) ) {
  31.         if( move_uploaded_file( $file['tmp_name'], ROOT_DIR . '/uploads/' . $file['name'] ) )
  32.             $files[] = realpath( ROOT_DIR . '/uploads/' . $file['name'] );
  33.         else
  34.             $error = true;
  35.     } else
  36.         $error = true;
  37. }
  38.  
  39. $data = $error ? array('error' => 'Ошибка загрузки файлов.') : array('files' => $files, 'title' => $title );
  40.  
  41. echo json_encode( $data );
  42.  
  43. ?>
  44.  
  45. 3.0 в JS подключил код:
  46.  
  47. var files;
  48.  
  49. // Вешаем функцию на событие
  50. // Получим данные файлов и добавим их в переменную
  51. $('input[type=file]').change(function(){
  52.     files = this.files;
  53. });
  54.  
  55. $('.button').click(function( event ){
  56.     event.stopPropagation(); // Остановка происходящего
  57.     event.preventDefault();  // Полная остановка происходящего
  58.  
  59.     // Создадим данные формы и добавим в них данные файлов из files
  60.     var data = new FormData();
  61.     $.each( files, function( key, value ){
  62.         data.append( key, value );
  63.     });
  64.    
  65.     // Отправляем запрос
  66.     $.ajax({
  67.         url: dle_root+'/engine/ajax/upload_screen.php',
  68.         type: 'POST',
  69.         data: data,
  70.         cache: false,
  71.         dataType: 'json',
  72.         processData: false, // Не обрабатываем файлы
  73.         contentType: false, // Так jQuery скажет серверу что это строковой запрос
  74.         success: function( respond, textStatus, jqXHR ){
  75.  
  76.             // Если все ОК
  77.             if( typeof respond.error === 'undefined' )
  78.             {
  79.                 // Файлы успешно загружены, делаем что нибудь здесь
  80.                 var files_path = respond.files;
  81.                 var html = '';
  82.                 $.each( files_path, function( key, val ){ html += val +'<br>'; } )
  83.                 $('.ajax-respond').html( html );
  84.             }
  85.             else
  86.                 console.log('ОШИБКИ ОТВЕТА сервера: ' + respond.error );
  87.         },
  88.         error: function( jqXHR, textStatus, errorThrown ){
  89.             console.log('ОШИБКИ AJAX запроса: ' + textStatus );
  90.         }
  91.     });
  92. });
  93.  
  94.  
  95. Что не так?
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement