网页链接
getFile文件上传
Controller提供了getFile系列方法支持文件上传。
特别注意:如果客户端请求为multipart request(form表单使用了enctype="multipart/form-data"),那么必须先调用getFile系列方法才能使getPara系列方法正常工作,因为multipart request需要通过getFile系列方法解析请求体中的数据,包括参数。同样的道理在Interceptor、Validator中也需要先调用getFile。
文件默认上传至项目根路径下的upload子路径之下,该路径称为文件上传基础路径。可以在 JFinalConfig.configConstant(Constants me)方法中通过me.setBaseUploadPath(baseUploadPath) 设置文件上传基础路径,该路径参数接受以”/”打头或者以windows磁盘盘符打头的绝对路径,即可将基础路径指向项目根径之外,方便单机多实例部署。当该路径参数设置为相对路径时,则是以项目根为基础的相对路径。
上面是注意事项,
代码:
UploadFile uf = getFile()File f = uf.getFile()
String path = f.getPath()
//或者 String path = uf.getUploadPath() + File.separator + uf.getFileName()
1 , 设置全局
@Override
public void configConstant(Constants me) {
me.setBaseUploadPath(String baseUploadPath)
}
/*** Set file base upload path.
* 设置文件上传保存基础路径,当路径以 "/" 打头或是以 windows 磁盘盘符打头,
* 则将路径设置为绝对路径,否则路径将是以应用根路径为基础的相对路径
* <pre>
* 例如:
* 1:参数 "/var/www/upload" 为绝对路径,上传文件将保存到此路径之下
* 2:参数 "upload" 为相对路径,上传文件将保存到 PathKit.getWebRoot() + "/upload" 路径之下
* </pre>
*/
public void setBaseUploadPath(String baseUploadPath) {
if (StrKit.isBlank(baseUploadPath)) {
throw new IllegalArgumentException("baseUploadPath can not be blank.")
}
this.baseUploadPath = baseUploadPath
}
2 , 使用Java的文件拷贝或者移动
UploadFile.getFile().renameTo(newFile)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)