java - 用java从Mysql DB下载视频文件

标签 java mysql video

我正在尝试下载在 Mysql 中以 blob 形式存储的视频文件。该文件下载正常,但我猜它已损坏。下载的格式有 ogg、webm n mp3。问题是,当我尝试使用 ffmpeg 转换任何视频时,它显示“处理过程中发现无效数据”。

我正在使用以下代码

    Blob image = null;
    Connection con = null;
    ResultSet rs = null;
     try{
     Class.forName("com.mysql.jdbc.Driver");
     con = MySqlConnect.getDBConnection();
     String sql = "select videos, filename from sun.videostore where  id ='"+fileID+"'";
     Statement stmt = con.createStatement();
     rs = stmt.executeQuery(sql);
     while (rs.next()) {
    String filename = rs.getString("filename");
    Blob video = rs.getBlob("videos");
    File file1 = new File("C:\\DowloadFile\\" + filename); 
    FileOutputStream foStream = new FileOutputStream(file1);
    if( video != null){ 
        int length = (int) video.length();
        InputStream is2 = video.getBinaryStream();
        int b = 0;
        while(b!=-1){
         b=is2.read();
         foStream.write(b);
        }

    }

    }           
  }catch(Exception e){
     System.out.println("Ecxeption in getting data from DB = "+e);
  }'

最佳答案

不,我已经检查了我上传的文件,它没有损坏......我尝试了不同的方式将视频上传到数据库。

File video = new File(filename);                                   
fis = new FileInputStream(video); 
ps.setBinaryStream(2, fis, (int) video.length());//preparedStatement 

如果我按照上述方式上传文件,我会在下载时得到正确的文件。

关于java - 用java从Mysql DB下载视频文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10222478/

相关文章:

java - 如何使用 Java 配置创建 Spring RESTFul 服务?

java - 查找默认计算器(跨平台)

mysql - 需要两个左连接的替代方法

java - Mybatis 映射器到 Mysql Point 对象

php - 我想从三个表中获取每个月的费用

Java 视频聊天应用程序输入输出流不起作用

java - 如何在draw2d图中垂直和水平居中标签?

java - 如何在 Windows 中的 Cygwin shell 中执行批处理文件

c++ - 如何将实时视频流从 YUV(HDYC) 转换为 RGB

javascript - 如何停止/播放在 DOM 中动态添加的视频