Загрузка файлов с помощью 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 правильно указан путь к этому файлу, то после щелчка на кнопке перед вами появится диалог загрузки файла.
<html>
<head>
<title>Fun with IFRAME Transports!</title>
<script type="text/javascript"
src="http://o.aolcdn.com/dojo/1.1/dojo/dojo.xd.js">
</script>
<script type="text/javascript">
dojo.require("dojo.io.iframe");
dojo.addOnLoad(function() {
download = function() {
dojo.io.iframe.send({
url : "http://localhost:8080/download/"
});
};
});
</script>
</head>
(body)
(button onclick="javascript:download()")Download!(/button)
(/body)
</html>

Теги:
AJAX
Добавлено: 24 Июля 2018 20:50:01 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...