jfinal整合hdfs文件上传时如何获取真实路径

jfinal整合hdfs文件上传时如何获取真实路径,第1张

网页链接

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)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/7985660.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-12
下一篇 2023-04-12

发表评论

登录后才能评论

评论列表(0条)

保存