首页
学习
活动
专区
圈层
工具
发布

利用 Blob 处理 node 层返回的二进制文件流字符串并下载文件

博客地址:https://ainyi.com/65 解释 | 背景 看到标题有点懵逼,哈哈,实际上是后端将文件处理成二进制流,返回到前端,前端处理这个二进制字符串,输出文件或下载 最近公司有个需求是用户在点击下载文件...(==pdf==)的时候,下载地址不能暴露在接口的返回值,前端不要通过这个地址下载,容易发生泄露,不安全。...所以经过讨论,就在后端根据文件地址直接转成二进制流形式,返回给前端合并,再进行下载 文件转换二进制流 在 nodejs 中将文件转换成二进制是比较简单的,先通过接口获取文件下载地址,由于是不同域的地址,...,赋值到动态创建的 a 标签的 href 属性,设置好 download 属性,点击下载后移除 a 标签 注意 要注意的是 在 node 层不必使用 Buffer 处理输出二进制对象,因为返回给前端的时候还是二进制字符串形式...,所以 node 层可直接返回二进制流字符串 在前端在调用 Blob 构造函数的时候,先利用 Buffer 将二进制字符串转为 Buffer 对象,再作为 Blob 的第一个参数,指定好第二个参数的类型

12.6K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    将后台返回字符串数据转为jquery对象,并做一些操作

    在 web 开发中,经常会有后台返回 html 字符串的情况,需要在 js 里将其 转为 juery 对象或者 DOM 并做一些处理,下面这是我在实际中遇到的一点问题,记录一下。...问题如下: 后台获取的字符串是一大段 html , 然后 转为 juery 对象,从中 取出一部分,本来取出来的也是 juery 对象,大致如下 (转为jquery对象,有的浏览器 会格式化...“5”; 前台 需要 合并单元格 ,因此要把前三个 去掉, 原本是想直接 截取字符串...,谁知道 不同浏览器 ,在转为 juery 对象时,有的会自己格式化加上换行 \r\n ,有的不会,因此不同浏览器 字符串长度也不同,截取的不一样,后来就通过判断浏览器来解决。

    89230

    swoole服务器返回二进制文件,websocket获取并下载

    二进制传输 二进制编码读、写、操作、下载 二进制编码转化 二进制编码转化成text形式的与file_get_contents()的读取结果相同 read​AsText(, “utf8”) 二进制文件的...base64编码用javascript实现base64编码器以及图片的base64编码 以太网帧类型 以太网帧类型总结 URL资源是文件存储的一种方式 例如:图片:是这个样子:Request URL:...data:application/octet-stream;base64, 文件的上传下载并不简单(我们平时用的普通HTTP, websocket向自定义的服务器上传【是个很复杂的封装过程...】,等多种形式) 重点 1、二进制文件共同点: 打开都是显示数字 二进制文件用二进制传输,传输的内容都是一样(一堆不能辨识的乱码) 2、二进制文件的获取(用js实现) 转化方式:使用readFile类的...转化后怎么使用:以readAsDataURL()为例:转化结果是:URL资源,可以放在HTML的src(用于预览)、href(用于下载)属性里面,配合HTML的a标签、download属性下载二进制文件

    88220

    PHP执行Shell脚本或Bash脚本文件并返回命令输出详情

    PHP执行shell脚本或者Bash脚本文件实例。system和exec函数可能被配置文件禁用,可以通过修改php配置文件删除被禁用的函数。1.通过system函数执行使用实例:";system($shell, $status);echo "";//shell命令执行结果和执行返回的状态值的对应关系...>运行结果:2.批量执行Shell命令为了方便管理,可以将所需执行的命令写入至sh文件,然后通过system执行即可。sh文件以#!...bashdig www.afengblog.com;dig afengblog.com;dig cdn.afengblog.com;可以将shell 值改为:bash dig.shdig.sh改为以上sh文件的相对或绝对路径如下...php$shell = "bash dig.sh";echo "";system($shell, $status);echo "";//注意shell命令的执行结果和执行返回的状态值的对应关系

    3.4K20

    高性能Java代码示例:字符串拼接并保存到文件中

    标题:高性能Java代码示例:字符串拼接并保存到文件中 一段高性能的Java代码,帮助大家了解如何将字符串拼接并保存到文件中。...在许多现实世界的应用场景中,我们需要将多个字符串拼接在一起,并将其保存到文件中,例如日志记录、数据持久化等。在处理大量数据时,低效的字符串拼接和文件写入操作可能导致性能下降。...现在,让我们来使用更高性能的解决方案,使用StringBuilder类来拼接字符串并使用BufferedWriter类来写入文件,代码如下: import java.io.BufferedWriter;...,并使用BufferedWriter类进行文件写入,我们可以极大地提高代码的性能。...结论: 通过本文的案例分析,我们了解到了在Java中如何高性能地拼接字符串并保存到文件中。

    23710

    .Net之使用Jquery Ajax通过FormData对象异步提交图片文件到服务端保存并返回保存的图片路径

    这篇文章中,我将要描述的是在我们.Net中如何使用Jquery Ajax通过FormData对象异步提交图片文件到后台保存,并返回保存的图片路径展示出图片,实现一个无刷新的异步图片上传的过程,当然这里我讲解的是单张图片的保存过程...) //获取input中的文件列表信息 var files = $(obj).prop("files"); //拼接图片文件流信息 console.log(files[0]); formData.append...,并保存: 1public class FileUploadController : Controller 2{ 3/// 4 /// 对验证和处理 HTML 窗体中的输入数据所需的信息进行封装...(httpPostedFileBase);//文件流转化为二进制字节 23 24 string result = SaveFile(fileExtension, fileData);//文件保存...//返回完整的图片保存地址 92 result="/"+basePath + "/" + saveDir + "/" + saveName; 93 } 94 catch (Exception)

    3K20

    2025-05-04:元音辅音字符串计数Ⅱ。用go语言,你有一个字符串 word 和一个非负整数 k。 要求计算并返回 word

    2025-05-04:元音辅音字符串计数Ⅱ。用go语言,你有一个字符串 word 和一个非负整数 k。...要求计算并返回 word 中所有满足以下条件的子字符串的数量: 1.子字符串中的每种元音字母('a'、'e'、'i'、'o'、'u')均至少出现过一次; 2.子字符串中辅音字母的总数正好是 k 个。...解释: 包含所有元音字母并且恰好含有一个辅音字母的子字符串有: word[0..5],即 "ieaouq"。 word[6..11],即 "qieaou"。...此时,所有以i为左端点、右端点≥j的子字符串均满足条件,累加数目到结果。 5. 窗口收缩(i指针移动):移动i时,更新窗口内辅音数和元音次数。...结果计算:count(k)返回辅音数≥k的有效子串数目,count(k+1)返回≥k+1的数目。二者之差即为正好k的数目。 时间复杂度:O(n)。每个字符最多被i和j访问各一次,总体线性时间。

    30110

    【FFmpeg】ffmpeg 命令行参数 ② ( Windows 环境中 ffmpeg 命令行输出文本搜索 -findstr 用法 | -findstr 搜索文本字符串用法 | 输出命令行到文件中 )

    一、Windows 环境中 ffmpeg 命令行输出文本搜索 -findstr 用法 1、ffmpeg 命令行输出信息太多 在 Windows 命令行中 , 执行 ffmpeg 命令 , 有可能 在命令行中输出大量信息...webvtt WebVTT subtitle S..... xsub DivX subtitles (XSUB) 2、-findstr 搜索文本字符串用法...在 Windows 的命令行环境中 , findstr 是一个用于搜索文本字符串的命令 ; 如果 要在 ffmpeg 的输出中使用 findstr 搜索特定的文本字符串 , 可以将 ffmpeg 的输出通过管道...; 执行 ffmpeg -encoders | findstr mp3 命令 , 就可以从 ffmpeg -encoders 命令的输出内容中 , 筛选出包含 " mp3 " 字符串的文本内容 ; D...输出到文件中进行分析 , 则 使用 > 符号 后面跟上 文本文件名称 , 就可以自动将 命令行内容输出到 文本文件中 ; 在 " D:\004_Operate\ffmpeg> " 目录 的 命令行中

    99410

    给你一个二进制字符串数组 strs 和两个整数 m 和 n, 请你找出并返回

    给你一个二进制字符串数组 strs 和两个整数 m 和 n, 请你找出并返回 strs 的最大子集的长度,该子集中 最多 有 m 个 0 和 n 个 1。...它遍历字符串数组 strs,将每个字符串中0和1的数量存储在一个二维数组 arr 中。然后通过递归函数 process1 进行计算,不断比较所选字符串是否符合要求,选择放入或不放入子集。...2.findMaxForm2 函数使用记忆化搜索的方式实现。它也遍历字符串数组 strs 得到二维数组 arr,但使用三维数组 dp 进行记忆化,记录已经计算过的结果,避免重复计算。...它从后向前遍历字符串数组 strs,得到二维数组 dp 来保存计算结果。通过比较选择当前字符串加入子集还是不加入子集,并更新动态规划数组 dp。...它遍历字符串数组 strs,得到二维数组 dp 来保存计算结果。使用一维数组 dp 进行滚动更新,从后向前遍历,根据当前字符串的0和1的数量,更新动态规划数组 dp。

    28420

    2023-05-08:我们定义了一个函数 countUniqueChars(s) 来统计字符串 s 中的唯一字符, 并返回唯一字符的个数。 例如:s = “LE

    2023-05-08:我们定义了一个函数 countUniqueChars(s) 来统计字符串 s 中的唯一字符,并返回唯一字符的个数。...本题将会给你一个字符串 s ,我们需要返回 countUniqueChars(t) 的总和,其中 t 是 s 的子字符串。输入用例保证返回值为 32 位整数。...答案2023-05-08:1.定义函数 countUniqueChars(s),参数为字符串 s,返回值为整数。2.创建一个空的哈希表 indies 来记录每个字符出现的位置。...6.返回计数器 res。注意:该题目要求统计所有子字符串中的唯一字符的数量,因此需要遍历所有子串。...时间复杂度:遍历字符串 s 的时间复杂度为 O(n),其中 n 是字符串的长度。

    51000

    2024-10-16:用go语言,找出一个字符串中每个字符最多出现两次的最长子串,并返回该子串的最大长度。 输入: s = “b

    2024-10-16:用go语言,找出一个字符串中每个字符最多出现两次的最长子串,并返回该子串的最大长度。 输入:s = "bcbbbcba"。 输出:4。...解释: 以下子字符串长度为 4,并且每个字符最多出现两次:"bcbbbcba"的右4个字符。 答案2024-10-16: chatgpt 题目来自leetcode3090。...大体步骤如下: 1.字符串处理:遍历给定的字符串 "bcbbbcba",对每个字符计数,确保每个字符最多出现两次。 2.滑动窗口法:使用滑动窗口法来找出符合条件的最长子串。...4.返回结果:最终返回找到的最大子串的长度。 • 总时间复杂度:整体通过一次遍历来完成,因此总时间复杂度为 O(n),其中 n 为字符串的长度。

    31820

    是真的很详细了!Linux中的Grep命令使用实例

    如果“Documents”文件夹不存在,则grep不会返回任何输出。因此,如果grep没有返回任何内容,则意味着它找不到您正在搜索的单词。 ?...$ fgrep is the equivalent of grep -F 此开关会将模式解释为固定字符串的列表,并尝试匹配其中的任何一个。当您需要搜索正则表达式字符时,此功能非常有用。...pgrep是用于搜索系统上正在运行的进程的名称并返回其相应进程ID的命令。例如,您可以使用它来查找SSH守护进程的进程ID: $ pgrep sshd ?...在下面的屏幕截图中,grep找到了两个与我们的模式匹配的文件,并返回了它们的文件名和它们所在的目录。 ?...Grep精确匹配 在上面的示例中,每当我们在文档中搜索字符串“ apple”时,grep也会在输出中返回“ pineapple”。

    72.2K66

    Python基本手册

    4 break 与 continue 文件处理 1 读取文件 2 写入文件 3 文件的方法和属性 集合与字典 1 集合 2 字典 算法 1 搜索 2 计时 搜索与排序 1 线性搜索 2 二分搜索 3...() #测试所有字符是否均为大写形式 lower() #将所有字符转换为小写形式并返回 upper() #将所有字符转换为大写形式并返回 replace(‘old’, ‘new’) #将字符串中所有子串...old替换为new并返回 split() #将空格分隔的单词以列表的形式返回 split(del) #将del分隔的子串以列表的形式返回 strip() #删除字符串两端的空白符并返回 strip(’s...’) #删除字符串中的s并返回 swapcase() #将小写转换为大写,将大写转换为小写 startswith(’s’) #判断字符串是否以字符串s开头 endswith(’s’) #判断字符串是否以字符串...9.3 文件的方法和属性 read([size]) #以字符串 形式返回文件数据,可选的size参数用于说明读取的字节数 readlines([size]) #将文件返回为行列表,可选参数size

    6.1K52

    linux中grep命令的12个实际例子

    其次,我们将该输出通过管道传输到grep –i python,它简单地说明grep并过滤掉并返回其中包含'python'的所有内容。"这–i选项是忽略大小写,因为grep区分大小写。...按给定字符串搜索文件 这–n选项grep在编译错误期间调试文件时非常有用。它显示给定搜索字符串的文件中的行号: # grep –n "main" setup..py 8....另一方面,如果您尝试: # ifconfig | grep –w "RUN" 由于我们不是在搜索模式,而是整个单词,因此不会返回任何内容。 10....在压缩文件中搜索字符串 zgrep 过滤查询压缩文件。类似于zcat, 用于gzipped文件。...当前目录下所有以 .c字符串结尾的文件中搜索字符串strcpy: # fgrep strcpy *.c 相关文章 Linux之grep命令 Linux之fgrep命令 linux之zgrep查找压缩包文件文本

    1.2K10

    使用kmp算法匹配字符串来查找文件(java版)

    ,之后返回最大公共字符串长度,如果没有公共字符串则返回0 所有返回的最大公共字符串长度将被方法getKMPtable()操作存放到一个int类型的数组中,并最后返回这个数组 这个最大公共字符串长度对应的字符就是相同下表的搜索串的字符...java字符串搜索文件总体代码 package com.cgtest.kmpsearch; import java.io.BufferedReader; import java.io.File; import...String strFilePath, String strSearch, int kmpTable []) { /* * 使用kmp算法 * 通过字符串搜索文件...,将搜索到的结果封装到map,list混合集合中,并最终返回一个map集合 */ ArrayList listFilesObj = getFiles(strFilePath...* 并不是基于next数组 * * 其返回值是当前字符串中有出现搜索串的个数 * 此时并无下标 *

    1.6K10
    领券