精华内容
下载资源
问答
  • 最近开发一个xml文件流解析项目(web) 对方发送xml格式文件流 我方获取并进行解析入库 我写了2中方案 去获取文件流并解析 第一种 Stream m_Stream = Request.InputStream; if (m_Stream.Length > 0){ XmlDocument ...
  • sax解析文件流解析

    2018-05-07 09:09:16
    得到xml文件对应的资源,可以是xml的输入文件和uri 得到SAX解析工厂(SAXParserFactory) 由解析工厂生产一个SAX解析器(SAXParser) 传入输入和handler给解析器,调用parse()解析防止解析文件过大ooc溢出
  • FTP服务器流解析xml文件
  • 视频所需要的解析文件
  • 前端解析文件流

    千次阅读 2019-11-05 18:38:49
    结合各种情况,我总结了前端最常用的三种方法来接受后端传过来的文件流并下载,针对不同的情况可以使用不同的方法。 方法一 使用场景 针对后端的get请求 具体实现 直接用个标签来接受后端的文件流 <a href="后端...

    https://www.cnblogs.com/hjbky/p/11506625.html

    前言
    项目中经常会遇到需要导出列表内容,或者下载文件之类的需求。结合各种情况,我总结了前端最常用的三种方法来接受后端传过来的文件流并下载,针对不同的情况可以使用不同的方法。

    方法一
    使用场景
    针对后端的get请求

    具体实现
    直接用个标签来接受后端的文件流

    <a href="后端文件下载接口地址" >下载文件</a>
    

    方法二
    使用场景
    针对后端的post请求
    利用原生的XMLHttpRequest方法实现

    具体实现

    function request () {
        const req = new XMLHttpRequest();
        req.open('POST', '<接口地址>', true);
        req.responseType = 'blob';
        req.setRequestHeader('Content-Type', 'application/json');
        req.onload = function() {
          const data = req.response;
          const a = document.createElement('a');
          const blob = new Blob([data]);
          const blobUrl = window.URL.createObjectURL(blob);
          download(blobUrl) ;
        };
        req.send('<请求参数:json字符串>');
      };
     
    function download(blobUrl) {
      const a = document.createElement('a');
      a.style.display = 'none';
      a.download = '<文件名>';
      a.href = blobUrl;
      a.click();
      document.body.removeChild(a);
    }
     
    request();
    

    方法三
    使用场景
    针对后端的post请求
    利用原生的fetch方法实现

    具体实现

    function request() {
      fetch('<接口地址>', {
        method: 'POST',
        headers: {
          'Content-Type': 'application/json',
        },
        body: '<请求参数:json字符串>',
      })
        .then(res => res.blob())
        .then(data => {
          let blobUrl = window.URL.createObjectURL(data);
          download(blobUrl);
        });
    }
     
    function download(blobUrl) {
      const a = document.createElement('a');
      a.style.display = 'none';
      a.download = '<文件名>';
      a.href = blobUrl;
      a.click();
      document.body.removeChild(a);
    }
     
    request();
    

    总结
    如果后端提供的下载接口是get类型,可以直接使用方法一,简单又便捷;当然如果想使用方法二、三也是可以的,不过感觉有点舍近求远了。
    如果后端提供的下载接口是post类型,就必须要用方法二或者方法三了。
    方法二和方法三怎么取舍?
    当你的项目里的接口请求全是基于XMLHttpRequest实现的,这时方法二就更加适合,只要基于你原来项目中的接口请求工具类加以扩展就行了。
    当你的项目里的接口请求全是基于fetch实现的,这时方法三就更加适合,比如我现在的做的一个项目就是基于ant design pro的后台管理系统,它里面的请求类就是基于fetch的,所以我就直接用的方法三,只要在它的request.js文件中稍作修改就行。
    我这里讨论的是两种原生的请求方式,如果你项目中引用了第三方请求包来发送请求,比如axios之类的,那就要另当别论了。

    this.$axios.post("/api/xxx/xxx/xxx",this.$qs.stringify({range:0,}),{responseType:'blob'}).then(msg=>{
                    console.log(msg.data) //打印出来是blob对象,已经不是乱码了
                    let url = window.URL.createObjectURL(msg.data); //表示一个指定的file对象或Blob对象
                    console.log(url,"看一下这是啥")
                    let a = document.createElement("a"); 
                    document.body.appendChild(a);
                    let fileName=msg.headers["content-disposition"].split(";")[1].split("=")[1];  //filename名称截取
                    a.href = url;
                    a.download = fileName; //命名下载名称
                    a.click(); //点击触发下载  
                    window.URL.revokeObjectURL(url);  //下载完成进行释放
            })
    

    特别注意:
    在和后台交互的时候,如果后台返回给我们的是二进制流数据,我们就要在发送的时候加上{responseType:‘blob’}这行代码,这样返回给我们的就不是乱码了。

    ajax实战:(ajax异步下载文件)请求二进制流进行处理
    使用blob类型进行接收

    <button type="button"  onclick="download()">导出</button>
    
    function download() {
    
       var url = 'download/?filename=aaa.txt';
    
       var xhr = new XMLHttpRequest();
    
       xhr.open('GET', url, true);        // 也可以使用POST方式,根据接口
    
       xhr.responseType = "blob";    // 返回类型blob
    
       // 定义请求完成的处理函数,请求前也可以增加加载框/禁用下载按钮逻辑
    
       xhr.onload = function () {
    
       // 请求完成
    
       if (this.status === 200) {
    
           // 返回200
    
           var blob = this.response;
    
           var reader = new FileReader();
    
           reader.readAsDataURL(blob);    // 转换为base64,可以直接放入a表情href
    
           reader.onload = function (e) {
    
               // 转换完成,创建一个a标签用于下载
    
               var a = document.createElement('a');
    
               a.download = 'data.xlsx';
    
               a.href = e.target.result;
    
               $("body").append(a);    // 修复firefox中无法触发click
    
               a.click();
    
               $(a).remove();
    
           }
    
       }
    
       };
    
       // 发送ajax请求
    
       xhr.send()
    
    }
    
    展开全文
  • ps流解析器,可以解析本地ps文件,支持把ps文件转化为es的视频和音频文件
  • 需求:表格转换,上传一个表格,解析后台返回的文件流,下载转换后的表格 html: <div class="edit_dialog"> <el-dialog title="表格转换" :visible.sync="execlChangeVisible" width="600px" :append...

    需求:表格转换,上传一个表格,解析后台返回的文件流,下载转换后的表格

    html:

     <div class="edit_dialog">
          <el-dialog title="表格转换" :visible.sync="execlChangeVisible" width="600px" :append-to-body="true" :close-on-click-modal="false">
            <!--表单开始-->
            <el-form label-width="85px">
              <el-form-item label="excle表格:">
                <el-upload
                  class="upload-demo"
                  ref="uploadChangeFile"
                  action="string"
                  :http-request="onChangeRequest"
                  accept=".xlsx, .xls"
                  :limit="1"
                  :auto-upload="false"
                >
                  <el-button slot="trigger" size="small" type="primary">选取文件</el-button>
                </el-upload>
              </el-form-item>
            </el-form>
            <!--表单结束-->
            <span slot="footer" class="dialog-footer">
              <el-button type="primary" @click="submitChangeFile" :disabled="zipDisabled">确 定</el-button>
            </span>
          </el-dialog>
        </div>

    js部分

      //表格转换上传
        submitChangeFile () {
          this.$refs.uploadChangeFile.submit();
        },
      //自定义上传方法(xxxRequest),表格转换上传
        onChangeRequest (data) {
          const loading = openLoad(this, "Loading...");
          let formData = new FormData();
          formData.append('file', data.file)
          this.$ajax.post(this.$store.state.localIP + "goods/excelOriginalGoods", formData, {
            headers: {
              'Content-Type': 'multipart/form-data',
            },
            responseType: 'arraybuffer'
          })
            .then(response => {
              loading.close();
              if (response.status == 200) {
                this.execlChangeVisible = false;
                //转化成功后,对返回的链接进行下载处理
                const tempBlob = new Blob([response.data], { type: 'application/ json' })
                // 通过 FileReader 读取这个 blob
                const reader = new FileReader()
                reader.onload = e => {
                  const res = e.target.result
                  // 此处对fileReader读出的结果进行JSON解析
                  // 可能会出现错误,需要进行捕获
                  try {
                    const json = JSON.parse(res)
                    if (json) {
                      // 解析成功说明后端导出出错,弹出错误信息,并返回
                      this.$message.error(json.retMsg);
                      return
                    }
                  } catch (err) {
                    // 该异常为无法将字符串转为json,说明返回的数据是一个流文件
                    // 不需要处理该异常,只需要捕获即刻
                  }
                  // 如果代码能够执行到这里,说明后端给的是一个流文件,再执行上面导出的代码
                  if (navigator.userAgent.indexOf("Chrome") != -1) {
                    // type 为需要导出的文件类型
                    const blob = new Blob([response.data], { type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" })
                    // 兼容不同浏览器的URL对象
                    const url = window.URL || window.webkitURL || window.moxURL
                    // 创建下载链接
                    const downloadHref = url.createObjectURL(blob)
                    // 创建a标签并为其添加属性
                    let downloadLink = document.createElement('a')
                    downloadLink.href = downloadHref
                    console.log(downloadHref)
                    downloadLink.download = '转化后的表格.xlsx'
                    // 触发点击事件执行下载
                    downloadLink.click()
                    window.URL.revokeObjectURL(downloadHref);  //下载完成进行释放
                  } else {
                    //兼容ie
                    window.navigator.msSaveOrOpenBlob(blob, '转化后的表格.xlsx')
                  }
                }
                // 将blob对象以文本的方式读出,读出完成后将会执行 onload 方法
                reader.readAsText(tempBlob)
              } else {
                this.$message.error(response.data.retMsg);
              }
            })
            .catch((error) => {
              loading.close();
              console.log(error)
              this.$message.error('转化失败!');
            })
        },

     

    展开全文
  • Python解析文件流的数据结构

    千次阅读 2017-03-31 11:08:12
    import struct db_file = open(video_file + ".dat", "rb") db_file.read(20) #文件头 chunk = db_file.read(30) datarow = struct.unpack("=IQffffH", chunk)#通过结构体解析数据 具体struct用法说明
    import struct
    
        db_file = open(data_file + ".dat", "rb")
        db_file.read(20)    #文件头
        chunk = db_file.read(30)#读取30个字节
        datarow = struct.unpack("=IQffffH", chunk)#通过结构体解析数据流


    具体struct用法说明

    展开全文
  • 后台传来的文件流: 我的下载: download(){ var self = this axios({ method: 'get', url: "/treeKan/download?dataId="+ this.$route.query.id, responseType: 'arraybuffer', //注意这个参数必须加,...

    后台传来的文件流:

    我的下载:

        download(){
          var self = this
          axios({
            method: 'get',
            url: "/treeKan/download?dataId="+ this.$route.query.id,
            responseType: 'arraybuffer', //注意这个参数必须加,不然会出现下载好的文件打开是乱码情况
                                         //这个参数是为了告诉axios请求,咱们请求的是二进制数据流
          })
          .then(res => {
            // 假设 data 是返回来的二进制数据
            const data = res.data
            const url = window.URL.createObjectURL(new Blob([data], {type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"}))
            const link = document.createElement('a')
            link.style.display = 'none'
            link.href = url
            link.setAttribute('download', self.$route.query.type) 
           //注意:上面的self.$route.query.type是你要下载的文件名加文件后缀,例如test.docx
            document.body.appendChild(link)
            link.click()
            document.body.removeChild(link)
          })
        },

    可以看到已成功下载: 

     注意:如果要下载的是压缩包,那么需要设置responseType,改为blob类型:

                responseType: "blob"

    展开全文
  • ts流文件解析工具 easyice v2.6,支持windows xp, windows 7, windows 8下使用,内含ts示例文件demo.ts,可直接解析
  • Asn.1格式文件流方式解析

    千次阅读 2011-03-03 16:00:00
    在做Asn.1文件解析时采用的是com.chaosinmotion.asn1包。但实际使用时发现不支持以的方式读取文件,这个可不能忍受,如果解析文件小倒不要紧,但遇到超大的文件,这岂不把内存撑爆了?
  • 用VS2008编写一个console应用程序,输入文件路径和相对时标,尽可能快速地搜索和定位PS多媒体文件中某一帧数据的位置,打印其对应的帧长度、帧号、相对文件头偏移字节数等信息。
  • 解决普通方法解析大xml的文件时,内存严重不足。
  • 视频文件文件解析--mp4
  • 场景:解析接口返回的文件流,实现word预览 解决: 1、通过Blob解析二进制文件流 2、通过mammoth将源文档转换为html 3、用vue渲染该html 见文档 mammoth.js, 将Word文档(. docx 文件) 转换为 HTML 知识: mammoth....
  • ps流解析程序

    热门讨论 2012-03-15 16:42:42
    ps流解析程序,可以将标准ps流中的es流抽取出来
  • Java笔记(7)-输入、输出 字节 字符 文件字节 文件字符 缓冲 随机 数组 数据 对象 序列化和对象克隆 文件锁 Scanner解析文件 Console就读取密码 InputStream、Reader、FileInputStream、...
  • java文件上传(解析request

    万次阅读 2014-11-07 10:08:50
    之前做文件上传一直是用fileUp
  • TS/PS媒体文件解析

    热门讨论 2011-12-22 10:33:03
    PS/TS媒体文件的理解报告,介绍PS/TS的结构、与ES如何进行转换,并结合MPEG-2的复用和解复用过程进行了说明
  • dicom文件详细解析

    万次阅读 多人点赞 2017-07-14 18:18:21
    dicom文件解析Dicom全称是医学数字图像与通讯,这里讲diocm格式文件的解读,读取本身是没啥难度的 无非就是字节码数据处理。只不过确实比较繁琐。 dicom中文协议文档:...
  • 最近项目需要前端处理后台返回的文件流,并且进行下载,简单说一下目前常用得2中方法: 因为要处理文件流,需要用到比较陌生的webApi,并且前端的responseType必须为blob(Blob对象表示一个不可变、原始数据的类...
  • FLV文件格式解析

    万次阅读 2019-10-13 21:29:45
    FLV文件格式解析 FLV 是FLASH VIDEO的简称,FLV媒体格式是随着Flash MX的推出发展而来的视频格式。由于它形成的文件极小、加载速度极快,使得网络观看视频文件成为可能,它的出现有效地解决了视频文件导入Flash后...
  • BVH文件格式解析

    万次阅读 多人点赞 2016-03-24 16:44:40
    BVH文件解析 简介简介
  • 2.2、用JsonReader解析文件流中的json

    万次阅读 2018-06-02 22:14:43
    有时,json字符串存储在一个文件中,Gson中提供了JsonReader来处理此种情况,只需要为json文件创建一个字符对象,并把改字符对象传给JsonReader即可。 例如在“e:/user.json”文件中有如下内容 { &quot;...
  • 内附有微软发布的.doc文件的内部结构解析说明,还有一个免费的二进制查看器(不支持.docx)。
  • TS Parser(TS流解析工具)

    热门讨论 2012-08-06 18:03:12
    自己写的基于QT的码流解析工具。 特色: 1、支持导出XML 和 Text 文件。 2、支持Tag搜索。 3、支持大文件(2G+)码流解析。 4、支持PSI/SI表在码流中的出现时间。 欢迎反馈bug和意见。
  • 大数据JSON流解析

    万次阅读 2018-01-01 10:36:02
    Json流解析,解决大数据内存问题。
  • 解析二进制流文件成excel

    千次阅读 2020-05-09 14:15:50
    只能解析成xls格式,而不能xlsx。 Blob 试过修改接收格式responseType为arraybuffer,或者安装xlsx组件npm install xlsx,不好用
  • JAVA 文件解析

    千次阅读 2018-07-31 10:25:02
    IOtest java文件解析 Java 菜鸡学习的文件解析的过程。 WIN+ALT 查询不全调用的函数; 读取文件在控制台输出,即读取文件进入内存 大致思路是: 读取文件路径 获取文件 创建字符集 创建一个使用输入缓冲区...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 393,276
精华内容 157,310
关键字:

文件流解析