[jquery] Как передать файл в браузер?

Тема в разделе "JavaScript", создана пользователем dandandan, 3 июн 2012.

Модераторы: ZiX
  1. dandandan

    dandandan

    Регистр.:
    7 авг 2008
    Сообщения:
    990
    Симпатии:
    266
    Нужно с помощью jquery сформировать запрос, отправить его на сервер. Сервер в ответ возвращает файл. Как этот файл передать пользователю для сохранения? iframe не предлагать :) !

    PHP:
    $.post("user.php",
    {
        
    otchet"getCvs",
        
    data1data1,
        
    data2data2
    },
        function(
    data) {
                
    alert('что-то передано'+data);
    },
    "json")
    .
    error(function() {
          
    alert('Ошибка');
    });
     
  2. recasher2k12

    recasher2k12

    Регистр.:
    19 фев 2012
    Сообщения:
    156
    Симпатии:
    78
    Посмотри вот этот плагин:
    http://jquery.tiddlywiki.org/twFile.html
    К сожалению, без реализации на PHP рабочего модуля для всех браузеров вряд ли сделать получится.
     
  3. zaxap83

    zaxap83 Постоялец

    Регистр.:
    6 дек 2010
    Сообщения:
    87
    Симпатии:
    28
    зачем тут alert?
    HTML:
    
    $.post("user.php",
    {
        otchet: "getCvs",
        data1: data1,
        data2: data2
    },
        function(data) {
               $('#some_block').html(data);
    });
    
    в user.php
    PHP:
    function file_download($filename$mimetype='application/octet-stream') {
      if (
    file_exists($filename)) {
        
    header($_SERVER["SERVER_PROTOCOL"] . ' 200 OK');
        
    header('Content-Type: ' $mimetype);
        
    header('Last-Modified: ' gmdate('r'filemtime($filename)));
        
    header('ETag: ' sprintf('%x-%x-%x'fileinode($filename), filesize($filename), filemtime($filename)));
        
    header('Content-Length: ' . (filesize($filename)));
        
    header('Connection: close');
        
    header('Content-Disposition: attachment; filename="' basename($filename) . '";');
    // Открываем искомый файл
        
    $f=fopen($filename'r');
        while(!
    feof($f)) {
    // Читаем килобайтный блок, отдаем его в вывод и сбрасываем в буфер
          
    echo fread($f1024);
          
    flush();
        }
    // Закрываем файл
        
    fclose($f);
      } else {
        
    header($_SERVER["SERVER_PROTOCOL"] . ' 404 Not Found');
        
    header('Status: 404 Not Found');
      }
      exit;
    }
    ...
     
     
  4. SiZE

    SiZE Постоялец

    Регистр.:
    31 янв 2010
    Сообщения:
    51
    Симпатии:
    10
    window.location.href=data.path_to_file;