Xitrum学习笔记14 - 文件上传

在文件上传的form中,要设置 enctype="multipart/form-data"

MyUpload.scalate:

form(method="post" action={url[MyUpload]} enctype="multipart/form-data")
  != antiCsrfInput
  label Please select a file:
  input(type="file" name="myFile")
  button(type="submit") Upload

MyUpload.action:

import io.netty.handler.codec.http.multipart.FileUpload

val myFile = param[FileUpload]("myFile")

myFile是io.netty.handler.codec.http.multipart.FileUpload的一个实例,使用它的方法可以获取文件名、移动文件等等。

小于16KB的文件会被存在内存,大文件会被存在系统临时路径(或者是在xitrum.conf的xitrum.request.tmpUploadDir中指定的路径),当连接关闭或者响应发出后就会被自动删除。

Ajax方式上传

有很多JavaScript库支持Ajax方式上传,它们使用隐藏iframe或Flash发送multipart/form-data到服务器。

如果你不确定这些库在form中用哪些请求参数发送文件,查看 Xitrum访问日志。

posted @ 2017-05-16 14:33  子秦  阅读(162)  评论(0编辑  收藏  举报