За последние 24 часа нас посетили 22784 программиста и 1262 робота. Сейчас ищут 725 программистов ...

Скачивание файла с сервера

Тема в разделе "PHP для новичков", создана пользователем Konstant1n, 4 мар 2018.

  1. Konstant1n

    Konstant1n Активный пользователь

    С нами с:
    14 авг 2017
    Сообщения:
    273
    Симпатии:
    1
    Адрес:
    Волгоград
    Доброго времени суток :)
    Сайт написан на php ооп паттерн mvc. Есть модель файла, там есть метод download:
    PHP:
    1.         $file = dirname(__FILE__) . '/../../files/file_04032018_000100.jpg';
    2.         if ( file_exists($file) ) {
    3.             if (ob_get_level()) {
    4.                 ob_end_clean();
    5.             }
    6.             header('Content-Type: application/octet-stream');
    7.             header('Content-Disposition: attachment; filename=' . basename( $file ));
    8.             readfile( $file );
    9.         }
    10.         return json_encode( 'Какое-нибудь сообщение');
    И есть страница со скриптом и с формой:
    Код (Javascript):
    1. function downloadFunc( formName, e ) {
    2.         e.preventDefault();
    3.         var $that = $('#' + formName),
    4.             formData = new FormData( $that.get(0) );
    5.         $.ajax({
    6.             url: 'сайт\file\download',
    7.             type: $that.attr( 'method' ),
    8.             contentType: false,
    9.             processData: false,
    10.             data: formData,
    11.             dataType: 'json',
    12.             success: function ( json ) {
    13.                 if ( json ) {
    14.                     result.html( json );
    15.                 } else {
    16.                     result.html( 'Запрос завершился неудачей :-(' );
    17.                 }
    18.             }
    19.         });
    20.     }
    21.  
    22. $('.submit').on('click', function (e) {
    23.     submitFunc( $(this).attr('name'), e );
    24. });
    25.  
    26.     $('.download').on('click', function (e) {
    27.         downloadFunc( $(this).attr('name'), e );
    28.     });
    HTML:
    1. <form name="delFileForm" id="delFileForm" action="сайт/file/delete" method="post" enctype="multipart/form-data">
    2. <input type="hidden" name="dirName" value="путь" />
    3. <input type="button" name="delFileForm" value="Удалить выбранные" class="submit" />
    4. <input type="button" name="delFileForm" value="Скачать" class="download" />
    5. </form>
    Дело в том, что с этой же формы можно удалять файлы.
    Если набрать в адресной строке сайт\file\download, то файл скачивается.
    А если нажать на кнопку, то ничего не происходит.
     
  2. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.752
    Симпатии:
    1.322
    Адрес:
    Лень
  3. Konstant1n

    Konstant1n Активный пользователь

    С нами с:
    14 авг 2017
    Сообщения:
    273
    Симпатии:
    1
    Адрес:
    Волгоград
    Не знаю. А для чего они?
     
  4. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.752
    Симпатии:
    1.322
    Адрес:
    Лень
    вот я у тебя и хочу узнать, прежде чем перейдем к основной проблеме
     
  5. Konstant1n

    Konstant1n Активный пользователь

    С нами с:
    14 авг 2017
    Сообщения:
    273
    Симпатии:
    1
    Адрес:
    Волгоград
    чтобы не перегружать что-то. чтобы весь файл не скачивался в php, что то типо этого.