binding.scala
package app
import com.thoughtworks.binding.dom
import org.scalajs.dom.raw.{Event, HTMLFormElement}
import org.scalajs.{dom => DOM}
object View
{
val submitForm =
{
event: Event =>
download
}
def download(): Unit =
{
// 这句非常重要 如果没有asInstanceOf[HTMLFormElement] 那就没有form.submit() 这种特定方法。
// 如果不使用标签的特定方法,可以不用 asInstanceOf
val form = DOM.document.createElement("form").asInstanceOf[HTMLFormElement]
form.setAttribute("style", "display:none");
form.setAttribute("method", "get")
// 这里可以使用循环,利用input传递多个参数
val input = DOM.document.createElement("input")
input.setAttribute("type", "hidden")
input.setAttribute("name", "oid"); // 参数的key
input.setAttribute("value", "55555"); // 参数value
form.appendChild(input)
// 循环添加上面的参数
form.setAttribute("action", "/download")
form.setAttribute("target", "_blank");
val body = DOM.document.createElement("body")
body.setAttribute("style", "display:none");
DOM.document.body.appendChild(form)
form.submit()
DOM.document.removeChild(form)
}
@dom def render =
{
<div>
<button class="ui primary button" onclick={submitForm}>
下载
</button>
</div>
}
}
flask
import json,os
from flask import send_file
@app.route('/download', methods=['GET'])
def downExperiment():
path = os.path.join("D:/Document/", 'pom.xml')
print(path)
rv=send_file(path,attachment_filename=path,as_attachment=True)
return rv