Hasor 采用了与 JFinal 相似的方式提供 API,底层的上传机制是来自 apache commons fileupload 并将其进行大量简化后内置到 Hasor 自身。html
所以在 Hasor 中使用文件上传功能无需引入任何第三方 jar 包您就能够使用该功能,先从一个简单的例子提及。java
@MappingTo("/fileupload.do") public class FileupLoad extends WebController { public void execute() throws IOException { FileItem multipart = this.getOneMultipart("upfile"); multipart.writeTo(...); multipart.deleteOrSkip(); } }
而对应的 html 页面就是一个普通的 文件表单上传。linux
<form action="/fileupload.do" method="post" enctype="multipart/form-data"> <input type="file" name="upfile"/> <input type="submit" value="上传"/> </form>
大一点的文件,在上传时服务器须要一个临时存储。使用 Hasor 上传文件你能够在解析上传时指定临时存储目录,也能够使用 Hasor 环境变量中指定的默认上传地址。默认状况下 Hasor 使用默认位置进行缓存上传数据。apache
下面是两种上传方式,第一种是用了 Hasor 默认自带的缓存目录配置。而第二种方式是用户自定义上传的缓存目录和配置信息。缓存
@MappingTo("/fileupload.do") public class FileupLoad extends WebController { public void execute() throws IOException { // // 方式1: - 使用默认缓存目录 FileItem multipart = this.getOneMultipart("upfile"); multipart.writeTo(new File("")); multipart.deleteOrSkip(); // // 方式2: - 使用自定义缓存目录 String cacheDirectory = "..."; Integer maxPostSize = 1024 * 1024; FileItem multipart1 = this.getOneMultipart("upfile", cacheDirectory, maxPostSize); } }
而在接下来将会介绍一下 Hasor 默认的上传缓存配置。服务器
临时上传缓存的配置信息保存在:“hasor.fileupload.cacheDirectory”配置项下。这个配置位于 hasor jar 包中的“static-config.xml”配置文件中。具体内容以下:app
... <hasor> ... <!-- 文件上传 --> <fileupload> <!-- 上传文件缓存目录 --> <cacheDirectory>${HASOR_TEMP_PATH}/fragment</cacheDirectory> <!-- 容许的请求大小 ( -1 表示不限制)--> <maxRequestSize>-1</maxRequestSize> <!-- 容许上传的单个文件大小( -1 表示不限制) --> <maxFileSize>-1</maxFileSize> </fileupload> ... </hasor> ...
在这段配置文件中 “HASOR_TEMP_PATH” 表示的是一个环境变量,在 static-config.xml 配置文件的 “environmentVar” 节点下能够找到这个环境变量的内容。post
<environmentVar> ... <!-- 工做目录 --> <WORK_HOME>%USER.HOME%/hasor-work</WORK_HOME> <!-- 临时文件位置 --> <HASOR_TEMP_PATH>%WORK_HOME%/temp</HASOR_TEMP_PATH> ... </environmentVar>
默认状况下 “HASOR_TEMP_PATH” 的配置信息是 “%WORK_HOME%/temp”,咱们看到这又是一组环境变量。“WORK_HOME” 默认状况下表示的是 “USER.HOME”。而这是用户登陆系统以后的用户主目录。this
若是您是 linux 系统那么这个目录一般在这里:“/home/xxx”,若是是 window 用户用户住目录会在“c:/users”下面。spa