Vaadin 档案上传档案使用 Upload
Component,Upload
支援单个或多个档案视觉化拖放,可限制档案类型、档案大小、图档尺寸...等功能。
档案从client上传至server时须指定接收器 Receiver
,vaadin 提供多种已实作的 Receiver
。
请开新档 V04__AlterStudent.sql
,在 table Student
增加栏位 photo
ALTER TABLE Student ADD photo VARCHAR(100);
我们使用同一案例上传学生相片,请开启 StudentEditDialog.kt
,下方增加上传功能,存档并将档名存在student.photo
栏位,以便後续存取
val buffer = FileBuffer()
var fileName : String? = ""
upload {
setReceiver(buffer)
setAcceptedFileTypes("image/jpeg", "image/png")
maxFiles = 1
maxFileSize = 1024*1024
addSucceededListener {
fileName = "/students/photos/photo_${studentId}.${buffer.fileName.split(".").run { get(size-1) }}"
val file = File(VaadinServlet.getCurrent().servletContext.getRealPath("/") + fileName)
.${buffer.fileName.split(".").get(1)}"
val file = File(fileName)
student.photo = fileName
FileUtils.copyToFile(buffer.inputStream, file)
}
}
第一、四行,使用 FileBuffer
接收上传资料
第五行,限制档案型态
第六行,因为相片只需要一张,限制上传数量为1
第七行,档案大小以byte为单位
第八行,档案上传成功执行addSucceededListener{}
Vaadin 和一般J2EE网路应用程序一样,使用 ServletContext (J2EE规范)的getRealPath()
方法取得实际路径。
VaadinServlet.getCurrent().servletContext.getRealPath("/")
<<: [神经机器翻译理论与实作] 重新检视有无注意力机制的Encoder-Decoder
在[Day 10] tinyML整合开发平台介绍有提到小型AI(tinyML)应用程序开发框架(Fi...
阿嬷识的代志 阿嬷不识字但是伊识真多的代志 -游鸿明〈无字的情批〉 哈罗大家好,欢迎来到「你阿嬷成为...
学校:University of Colorado Boulder 科系:post-baccala...
昨天我们都安装好Unity引擎,架设好可以编译程序的环境之後 打开"Unity Hub&q...
内容传递网络(Content Delivery Network) 内容交付网络或内容分发网络(CD...