小程序下载mp4文件保存到相册失败 有更新!

2018-08-13

最近在做一个小程序 这个小程序有一个下载mp4文件的功能

但是在保存到图册的时候 出现错误提示 saveVideoToPhotosAlbum:fail invalid file type

下载接口

我写了一个接口 以供下载文件 通过流的形式 将文件字节输出给客户端 代码如下

	# response对象是 HttpServletResponse类

    FileInputStream fileInputStream = null;
    ServletOutputStream outputStream = null;
    try {
        //文件输入流
        fileInputStream = new FileInputStream(file);
        //HttpServletResponse 输出流
        outputStream = response.getOutputStream();
        //构建下载文件的文件名
        String disposition = "attachment;filename=" + outFileName;
        response.addHeader("Content-disposition", disposition);
        //边读 边写到输出流
        byte by[] = new byte[1024];
        int len = -1;
        while ((fileInputStream.read(by)) != -1) {
            outputStream.write(by, 0, len);
        }

    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        if (fileInputStream != null) fileInputStream.close();
        if (outputStream != null) outputStream.close();
    }

	//这个写法  文件是可以正常下载的  包括浏览器 下载工具 都是可以正常下载的 
	//但是到了小程序里面 调用saveVideoToPhotosAlbum保存视频的时候  就会提示错误信息 saveVideoToPhotosAlbum:fail invalid file type
	//解决方案是  加入一个响应头 Content-Type:video/mp4

修改接口

    FileInputStream fileInputStream = null;
    ServletOutputStream outputStream = null;
    try {
        //文件输入流
        fileInputStream = new FileInputStream(file);
        //Respone 输出流
        outputStream = response.getOutputStream();
        //构建下载文件的文件名
        String disposition = "attachment;filename=" + outFileName;
        response.addHeader("Content-disposition", disposition);
        //告知客户端  这是一个视频
        response.setContentType("video/mp4");
        //边读 边写到输出流
        byte by[] = new byte[1024];
        int len = -1;
        while ((fileInputStream.read(by)) != -1) {
            outputStream.write(by, 0, len);
        }

    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        if (fileInputStream != null) fileInputStream.close();
        if (outputStream != null) outputStream.close();
    }
	
	#问题解决~

评论
发表评论
validate
取消