Загрузка файлов с помощью IFRAME

Поскольку запуск загрузки файла посредством тега IFRAME является распространенной операцией, попробуем реализовать ее. Ниже приводится файл CherryPy, который отправляет локальный файл, когда происходит обращение по адресу http://localhost:8080/. Мы будем использовать этот адрес URL при обращении к серверу с помощью функции dojo.io.frame.send:
import cherrypy
from cherrypy.lib.static import serve_file
import os
# определите здесь абсолютный путь к файлу на вашей машине
local_file_path="/tmp/foo.html"
class Content:
#обслуживает передачу файла...
@cherrypy.expose
def download(self):
return serve_file(local_file_path, "application/x-download",
"attachment")
# запустить веб-сервер, который прослушивает порт 8080
cherrypy.quickstart(Content(), '/')

Ниже следует файл HTML, в котором используется IFRAME. Вы должны открыть его в броузере, и если в сценарии CherryPy правильно указан путь к этому файлу, то после щелчка на кнопке перед вами появится диалог загрузки файла.


Fun with IFRAME Transports!



(body)
(button onclick="javascript:download()")Download!(/button)
(/body)


Оцените статью: (0 голосов)
0 5 0

Статьи из раздела Dojo на эту тему:
DeferredList
JSON
OpenAjax Hub
Внедрение объектов Deferred в функции XHR
Вызов удаленных процедур