博客地址:https://ainyi.com/65 解释 | 背景 看到标题有点懵逼,哈哈,实际上是后端将文件处理成二进制流,返回到前端,前端处理这个二进制字符串,输出文件或下载 最近公司有个需求是用户在点击下载文件(==pdf==)的时候,下载地址不能暴露在接口的返回值,前端不要通过这个地址下载,容易发生泄露,不安全.所以经过讨论,就在后端根据文件地址直接转成二进制流形式,返回给前端合并,再进行下载 文件转换二进制流 在 nodejs 中将文件转换成二进制是比较简单的,先通过接口获取文件下载地…
作者:刘冀 在公有云厂商里都有对象存储,京东云也不例外,而且也兼容S3的标准因此可以利用相关的工具去上传下载文件,本文主要记录一下利用CloudBerry Explorer for Amazon S3这个工具进行上传下载文件. 我使用的免费版本 京东云登录地址 http://www.jdcloud.com 可以用京东账号登录,如下,右上角会改变为登录账号 点击右上角的名字,弹出菜单,点击账号管理 看到所有的账户信息 点击AccessKey 点击创建Access Key,需要二次认证 记下Acce…
参与该项目的文件上传和下载.一旦struts2下完成,今天springmvc再来一遍.发现springmvc特别好包,基本上不具备的几行代码即可完成,下面的代码贴: FileUpAndDown.jsp <%@ page language="java" contentType="text/html; charset=UTF-8"%> <html> <head> <title>using commons Upload to…
最近写了一个微信的翻译机器人.用户只要关注该公众号,发送英文的消息,就能收到中文翻译的回复.有兴趣的读者可以扫描下面的二维码关注该公众号,尝试发送英文单词试试看.(有时候第一次发送单词会收到“该公众号暂时无法提供服务,请稍后再试”的消息.这种情况下不要紧,等一会再试就可以了) 服务的后台是用Node.js写的,托管在OpenShift的Paas平台上.翻译过程实际上是调用微软的Bing translation API做的,代码中用到了alexu84的bing-translate和JacksonT…
1.总结一下 今年,2月份从深圳来到广州,工作到现在,回头看,完成的项目4-5个,公司基本没有懂技术的领导,所以在技术选型上,我们非常的自由,所以内心一直都不满足现状,加上一起工作的小伙伴给力(哈哈哈,我们一共就2个人),填坑能力不错,所以敢于把新技术,新架构用于项目当中,反正一切都可控,怎么开心怎么来. 小项目不说了,基本都是面向服务在做,架构也是以前技术积累下来的一个脚手架项目,直接套进去用. 云课堂2个人一共开发了4个月,然后投入使用,包含了商品购买,视频点播,视频直播,题库和部分实操功能…
/** * 返回值文件类型为 blob 二进制流文件 * responseType: 'blob' * params 接口所需参数 * 命名文件名:依据时间戳命名文件名 * (导出时需要延迟,否则导出文件失败,默认文件名时直接导出) * */ $axios.get(`api`, { responseType: 'blob', params }).then((res) => { // response 的返回值为二进制文件流 // 创建时间戳 let date = new Date(), yyyy…
我很久之前写了一篇前端vue利用blob对象下载文件,有些人私信我,如果后端返回流失败,给出的json对象该怎么获得?前端获取的流怎么能获取原文件名?其实在那篇文章之后,我就已经针对这两个问题进行了优化,于是就有了这篇. 首先,针对第一个问题,如果能正常获得文件流,前端则以blob对象承接,反之,一般后端会传一个json对象告诉你失败了以及失败原因,这个时候json对象由于请求中responseType: 'blob'的声明之后,也会生成文件,但是文件内容是乱码,这个时候,我们必须要用到File…
利用div实现遮罩层效果就是利用一个全屏.半透明的div遮住页面上其它元素,典型的例子就是百度的登录界面.下面贴出示例代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>全屏div</title> <style> html,body { margin:0; height:100%; } #test { width:100%; h…
SpingMVC中利用BindingResult将错误信息返回到页面中. ActionFrom中: private String name; private String password; get()/set()....... JSP中: <form:form id="T51000ActionForm" name="T51000ActionForm" modelAttribute="t51000ActionForm"  method=&q…
想利用泛型抽取BaseDao层,简化操作时出现故障: @Transactional这个注解是能够继承的.于是就想写在抽取的BaseDao层上,让实现的类能够不用写@Transactional,就可开启事务. 问题描写叙述: 因为偷懒.没给BaseDao抽接口.代码例如以下: package com.liang.ssh2.base; import java.lang.reflect.ParameterizedType; import java.util.Collections; import ja…