//package com.ruoyi.common.utils; // //import cn.hutool.core.io.unit.DataSize; //import cn.hutool.core.util.IdUtil; //import cn.hutool.http.HttpRequest; //import cn.hutool.http.HttpResponse; //import com.google.common.collect.ImmutableList; //import javafx.util.Duration; //import org.apache.catalina.Manager; //import org.apache.commons.io.FilenameUtils; //import org.apache.commons.lang3.StringUtils; //import org.apache.http.entity.ContentType; //import org.springframework.mock.web.MockMultipartFile; //import org.springframework.web.multipart.MultipartFile; //import javafx.scene.media.Media; //import javafx.scene.media.MediaPlayer; //import ws.schild.jave.EncoderException; //import ws.schild.jave.MultimediaInfo; //import ws.schild.jave.MultimediaObject; // //import java.io.File; // //import java.io.*; //import java.math.BigDecimal; //import java.math.RoundingMode; //import java.net.URL; //import java.nio.channels.FileChannel; //import java.util.ArrayList; //import java.util.List; // ///** // * MultipartFile和File互转工具类 // */ //public class MultipartFileUtil { // // /** // * 输入流转MultipartFile // * // * @param fileName // * @param inputStream // * @return // */ // public static MultipartFile getMultipartFile(String fileName, InputStream inputStream) { // MultipartFile multipartFile = null; // try { // multipartFile = new MockMultipartFile(fileName, fileName, // ContentType.APPLICATION_OCTET_STREAM.toString(), inputStream); // } catch (Exception e) { // e.printStackTrace(); // } // return multipartFile; // } // // /** // * 读取网络文件 // * // * @param url 文件地址 // * @param fileName 文件名称(需带文件名后缀) // * @return // */ // public static MultipartFile getMultipartFile(String url, String fileName) { // HttpResponse response = HttpRequest.get(url).execute(); // InputStream inputStream = response.bodyStream(); // return MultipartFileUtil.getMultipartFile(fileName, inputStream); // } // // /** // * File 转MultipartFile // * // * @param file // * @return // */ // public static MultipartFile getMultipartFile(File file) { // FileInputStream fileInputStream = null; // MultipartFile multipartFile = null; // try { // fileInputStream = new FileInputStream(file); // multipartFile = new MockMultipartFile(file.getName(), file.getName(), // ContentType.APPLICATION_OCTET_STREAM.toString(), fileInputStream); // } catch (Exception e) { // e.printStackTrace(); // } // return multipartFile; // } // // /** // * MultipartFileUtil 转File // * // * @param multipartFile // * @return // */ // public static File getFile(MultipartFile multipartFile) { // // 获取文件名 // String fileName = multipartFile.getOriginalFilename(); // // 获取文件后缀 // String prefix = "." + getExtensionName(fileName); // File file = null; // try { // // 用uuid作为文件名,防止生成的临时文件重复 // file = File.createTempFile(IdUtil.simpleUUID(), prefix); // // MultipartFile to File // multipartFile.transferTo(file); // } catch (IOException e) { // e.printStackTrace(); // } // return file; // } // // /** // * 获取文件扩展名,不带 . // */ // public static String getExtensionName(String filename) { // if ((filename != null) && (filename.length() > 0)) { // int dot = filename.lastIndexOf('.'); // if ((dot > -1) && (dot < (filename.length() - 1))) { // return filename.substring(dot + 1); // } // } // return filename; // } // // /** // 前端上传视频之后,根据上传的视频文件获取视频的大小和时长 // 1、获取视频时长 // */ // public static int readVideoTime(File source) { // int vedioSecond = Integer.parseInt(parseDuration(source.getAbsolutePath())); // return vedioSecond; // } // // // /** // * 视频时长 // * // * @param fileUrl // * @return String[] 0=秒时长,1=展示时长(格式如 01:00:00) // */ // public static String parseDuration(String fileUrl) { // long ls = 0L; // String[] length = new String[2]; // try { // // //// URL source = new URL(fileUrl); // // 构造方法 接受URL对象 //// MultimediaObject instance = new MultimediaObject(source); // // 构造方法 接受File对象 // MultimediaObject instance = new MultimediaObject(new File(fileUrl)); // MultimediaInfo result = instance.getInfo(); // ls = result.getDuration() / 1000; // length[0] = String.valueOf(ls); // Integer hour = (int) (ls / 3600); // Integer minute = (int) (ls % 3600) / 60; // Integer second = (int) (ls - hour * 3600 - minute * 60); // String hr = hour.toString(); // String mi = minute.toString(); // String se = second.toString(); // if (hr.length() < 2) { // hr = "0" + hr; // } // if (mi.length() < 2) { // mi = "0" + mi; // } // if (se.length() < 2) { // se = "0" + se; // } // // String noHour = "00"; // if (noHour.equals(hr)) { // length[1] = mi + ":" + se; // } else { // length[1] = hr + ":" + mi + ":" + se; // } // // } catch (Exception e) { // e.printStackTrace(); // } // System.out.println(length);//{"20","00:20"} // return String.valueOf(ls); // } // // // // // // // /** // * 2、获取文件大小 // * @param source // * @return // * //***获取视频大小的时候,由于用到了流,使用完之后一定要及时的关闭流,避免无法删除视频文件*** // * // */ // public static BigDecimal readFileSize(File source) { // //cn.hutool.core.io.unit.DataSize.ofMegabytes() // FileChannel fc= null; // //String size = ""; // BigDecimal size = null ; // try { // @SuppressWarnings("resource") // FileInputStream fis = new FileInputStream(source); // fc= fis.getChannel(); // BigDecimal fileSize = new BigDecimal(fc.size()); // //size = fileSize.divide(new BigDecimal(1048576), 2, RoundingMode.HALF_UP) + "MB"; // size = fileSize.divide(new BigDecimal(1024*1024), 2, RoundingMode.HALF_UP) ; // } catch (FileNotFoundException e) { // e.printStackTrace(); // } catch (IOException e) { // e.printStackTrace(); // } finally { // if (null!=fc){ // try{ // fc.close(); // }catch(IOException e){ // e.printStackTrace(); // } // } // } // return size; // } // // //}