feiyu02
2024-12-31 0c59552dc14c9023d4c0a9d57509cce1d5a6d6da
src/main/kotlin/cn/flightfeather/supervision/common/utils/FileUtil.kt
@@ -1,13 +1,12 @@
package cn.flightfeather.supervision.common.utils
import java.io.File
import java.io.FileOutputStream
import java.io.FileInputStream
import cn.flightfeather.supervision.common.exception.BizException
import org.springframework.web.multipart.MultipartFile
import java.io.*
import java.util.*
class FileUtil {
object FileUtil {
    @Throws(Exception::class)
    fun uploadFile(file: ByteArray, filePath: String, fileName: String) {
        val targetFile = File(filePath)
@@ -20,13 +19,24 @@
        out.close()
    }
    fun delFile(path: String): Boolean {
        val file = File(path)
        if (!file.exists()) return false
        if (file.isDirectory) return false
        try {
            file.delete()
            return true
        } catch (e: Exception) {
            throw BizException("文件删除出错", e.cause)
        }
    }
    //删除文件夹
    fun delFolder(folderPath: String) {
        try {
            delAllFile(folderPath) //删除完里面所有内容
            var filePath = folderPath
            filePath = filePath
            val myFilePath = java.io.File(filePath)
            val filePath = folderPath
            val myFilePath = File(filePath)
            myFilePath.delete() //删除空文件夹
        } catch (e: Exception) {
            e.printStackTrace()
@@ -116,4 +126,49 @@
        }
    }
    fun saveFiles(files: Array<MultipartFile>, basePath: String, path: String): List<String> {
        val pathList = mutableListOf<String>()
        files.forEach { file ->
            val ext = file.originalFilename?.split(".")?.last()
            val fileName = UUID.randomUUID().toString() + "." + ext
            pathList.add("$path$fileName")
            val absolutePath = "${basePath}/$path/"
            try {
                //调用文件保存方法
                uploadFile(file.bytes, absolutePath, fileName)
            } catch (e: Exception) {
                // TODO: handle exception
            }
        }
        return pathList
    }
    /**
     * 按照固定宽度压缩图片至base64形式
     */
//    fun compressImage2(bytes: ByteArray): String {
//        val length = 1440//图片长边固定压缩为1440像素
//
//        val input = ByteArrayInputStream(bytes)
//        val srcImg = ImageIO.read(input)
//        var srcLong = 0
//        var srcShort = 0
//        if (srcImg.width <= srcImg.height) {
//            srcLong = srcImg.height
//            srcShort = srcImg.width
//
//        } else {
//
//        }
//        val scale = w.toFloat() / srcW
//        val h = (srcImg.height * scale).toInt()
//
//        val buffImg = BufferedImage(w, h, BufferedImage.TYPE_INT_ARGB)
//        buffImg.graphics.drawImage(srcImg.getScaledInstance(w, h, Image.SCALE_SMOOTH), 0, 0, null)
//        val out = ByteArrayOutputStream()
//        ImageIO.write(buffImg, "PNG", out)
//
//        return SCHEME_PNG + Base64.getEncoder().encodeToString(out.toByteArray())
//    }
}