跳转到内容

文件上传示例

import org.dromara.x.file.storage.core.FileInfo; import org.dromara.x.file.storage.core.FileStorageService; import org.noear.solon.core.handle.UploadedFile;

/**
* 上传文件
*/
@Mapping("/upload")
@NoRepeatSubmit
@SaCheckPermission("system:file:upload")
@Log(title = "上传文件", businessType = BusinessType.UPLOAD)
public FileInfo upload(UploadedFile file) {
return fileStorageService.of(file).upload();
}
// 直接上传
fileStorageService.of(file).upload();
// 如果要用 byte[]、InputStream、URL、URI、String 等方式上传,暂时无法获取 originalFilename 属性,最好手动设置
fileStorageService.of(inputStream).setOriginalFilename("a.jpg").upload();
// 上传到指定路径下
fileStorageService.of(file)
.setPath("upload/") // 保存到相对路径下,为了方便管理,不需要可以不写
.upload();
// 关联文件参数并上传
fileStorageService.of(file)
.setObjectId("0") // 关联对象id,为了方便管理,不需要可以不写
.setObjectType("0") // 关联对象类型,为了方便管理,不需要可以不写
.putAttr("role","admin") //保存一些属性,可以在切面、保存上传记录、自定义存储平台等地方获取使用,不需要可以不写
.putAttr("username","007")
.upload();
// 上传到指定的存储平台
fileStorageService.of(file)
.setPlatform("aliyun-oss-1") // 使用指定的存储平台
.upload();
// 对图片进行处理并上传,有多个重载方法。图片处理使用的是 https://github.com/coobird/thumbnailator
fileStorageService.of(file)
.setThumbnailSuffix(".jpg") //指定缩略图后缀,必须是 thumbnailator 支持的图片格式,默认使用全局的
.setSaveThFilename("thabc") //指定缩略图的保存文件名,注意此文件名不含后缀,默认自动生成
.image(img -> img.size(1000,1000)) // 将图片大小调整到 1000*1000
.thumbnail(th -> th.size(200,200)) // 再生成一张 200*200 的缩略图
.upload();
// 其它更多方法以实际 API 为准
  1. File
  2. byte[]
  3. InputStream