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; } }
  • 相关阅读:
    Qt串口的使用记录
    CImage灰度化
    (记录)MSYS2+MINGW32编译ffmpeg过程
    Blas 基本函数功能
    blas中dgemm_的用法
    选择、插入、冒泡排序
    简单的页面
    中国大学排名
    爬bing 主页
    读书报告
  • 原文地址:https://www.cnblogs.com/zhshto/p/6473942.html
Copyright ? 2011-2022 开发猿


http://www.vxiaotou.com