zoukankan      html  css  js  c++  java
  • 单文件上传与微信多媒体文件转码

    项目中用到的文件上传和微信录音持久化到本地
    public
    class FileOperateUtil { private static final String fileServerUrl = PropertiesUtil.get("File.fileServerUrl"); private static final String fileNetServerUrl = PropertiesUtil.get("File.fileNetServerUrl"); /** * arm 转码 mp3 * @param uploadFile * @throws Exception */ private static boolean armToMp3(File uploadFile) throws Exception{ boolean trans = false; String sourePath = uploadFile.getCanonicalPath(); String outPath = sourePath.substring(0, sourePath.lastIndexOf(".")).concat(".mp3"); List<String> cmd = new ArrayList<String>(); String os = System.getProperties().getProperty("os.name"); if(os.indexOf("Mac") >= 0){ cmd.add("/usr/local/bin/ffmpeg"); //ffmpeg 可执行地址 }else if(os.indexOf("Linux") >= 0){ cmd.add("/usr/bin/ffmpeg"); //ffmpeg 可执行地址 }else{ cmd.add("C:/Program Files/ffmpeg.exe"); //ffmpeg 可执行地址 } cmd.add("-i"); cmd.add(sourePath); cmd.add("-y"); cmd.add(outPath); StringBuffer getter = new StringBuffer(); for(int i=0;i<3;i++){ boolean mp3 = ExecutiveShell.exec(cmd,getter); if(mp3){ trans = true; break; } } if(!trans){ trans = false; uploadFile.deleteOnExit(); throw new Exception("语音转码失败!"); }else{ return trans; } } /** * @描述 单文件上传 * @日期 2016年11月22日 下午11:12:57 * @version 1.0 * @param in * @param fileName * @return */ public static String singleFileUpload(InputStream in,String fileName){ String returnUrl = null; String upLoadUrl = null; OutputStream out = null; File file = null; byte[] buf = new byte[1024 * 10]; int length = 0; // 每个月的上传文件都分开 String filePath = new SimpleDateFormat("yyyy-MM").format(new Date()); try{ //获取文件类型 String type = fileName.substring(fileName.indexOf('.')+1); //根据文件类型分开 filePath = "/"+filePath + "/"+type+"/"; upLoadUrl = fileServerUrl + filePath; //文件夹判断补全 file = new File(upLoadUrl); file.mkdirs(); file = new File(upLoadUrl+fileName); out = new FileOutputStream(file); while ((length = in.read(buf)) != -1) { out.write(buf, 0, length); out.flush(); } returnUrl =fileNetServerUrl + filePath+fileName; out.close(); in.close(); }catch(Exception e){ returnUrl = null; }finally{ try{ buf = null; if (out != null){ out.close(); } if (in != null){ in.close(); } if(armToMp3(file)){ returnUrl = returnUrl.substring(0,returnUrl.lastIndexOf(".")).concat(".mp3"); } }catch(Exception e){ } } return returnUrl; } }
  • 相关阅读:
    CREATE AGGREGATE
    技术文档列表
    jQuery 判断表单中多个 input text 中至少有一个不为空
    Java实现 蓝桥杯 算法提高 奥运会开幕式
    Java实现 蓝桥杯 算法提高 最长滑雪道
    Java实现 蓝桥杯 算法提高 最长滑雪道
    Java实现 蓝桥杯 算法提高 最长滑雪道
    Java实现 蓝桥杯 算法提高 最大值路径
    Java实现 蓝桥杯 算法提高 最大值路径
    Java实现 蓝桥杯 算法提高 最大值路径
  • 原文地址:https://www.cnblogs.com/zhshto/p/6473942.html
Copyright © 2011-2022 走看看