文件上传示例
import org.dromara.x.file.storage.core.FileInfo; import org.dromara.x.file.storage.core.FileStorageService; import org.noear.solon.core.handle.UploadedFile;
接口文件上传
Section titled “接口文件上传”/** * 上传文件 */@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/thumbnailatorfileStorageService.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 为准file参数其他类型的支持
Section titled “file参数其他类型的支持”- File
- byte[]
- InputStream