Tải lên tệp¶
Xem thêm Chương Scopes.
Trong form tải lên (upload form), bạn cần đặt enctype
thành 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
Trong MyUpload
action:
import io.netty.handler.codec.http.multipart.FileUpload
val myFile = param[FileUpload]("myFile")
myFile
là một instance của FileUpload.
Sử dụng các method của chúng để lấy tên tập tin, di chuyển tệp vào một thư mục v.v.
Các tập tin nhỏ (nhỏ hơn 16 KB) sẽ được lưu trong bộ nhớ. Các tệp lớn thường được lưu
trong hệ thống thư mục lưu trữ tạm (hoặc một thư mục xác định bởi xitrum.request.tmpUploadDir
trong xitrum.conf), và sẽ được xóa tự động khi đóng kết nối hoặc một respond được
gửi đi.
Ajax style upload¶
Có rất nhiều thư viện JavaScript hỗ trợ tải lên Ajax style. Chúng sử dụng iframe
ẩn hoặc Flash để gửi multipart/form-data
ở bên trên đến server.
Nếu bạn không chắc chắn parameter nào của request trong thư viện sử dụng trong form
để gửi tệp, hãy xem Xitrum access log.