技术标签: 笔记
@RequestMapping(value = "/download")
public void download(HttpServletRequest request,HttpServletResponse response) throws Exception {
PageData pd = this.getPageData();
pd = printmxService.findById(pd);
String type = pd.getString("RESERVE3");
if(type.equals("身份证")){//上传类型为身份证时,正反面打包为压缩包下载到桌面
//获取图片
String []path ={PathUtil.getClasspath()+pd.getString("FILE"), PathUtil.getClasspath()+pd.getString("RESERVE2")};
// 要生成的压缩文件地址和文件名称
String desPath = "C:\\Users\\Administrator\\Desktop\\DownLoad.zip";
File zipFile = new File(desPath);
ZipOutputStream zipStream = null;
FileInputStream zipSource = null;
BufferedInputStream bufferStream = null;
try {
//构造最终压缩包的输出流
zipStream = new ZipOutputStream(new FileOutputStream(zipFile));
for(int i =0;i<path.length;i++){
File file = new File(path[i]);
//将需要压缩的文件格式化为输入流
zipSource = new FileInputStream(file);
//压缩条目不是具体独立的文件,而是压缩包文件列表中的列表项,称为条目,就像索引一样
ZipEntry zipEntry = new ZipEntry(file.getName());
//定位该压缩条目位置,开始写入文件到压缩包中
zipStream.putNextEntry(zipEntry);
//输入缓冲流
bufferStream = new BufferedInputStream(zipSource, 1024 * 10);
int read = 0;
//创建读写缓冲区
byte[] buf = new byte[1024 * 10];
while((read = bufferStream.read(buf, 0, 1024 * 10)) != -1)
{
zipStream.write(buf, 0, read);
}
}
} catch (Exception e) {
e.printStackTrace();
} finally {
//关闭流
try {
if(null != bufferStream) bufferStream.close();
if(null != zipStream) zipStream.close();
if(null != zipSource) zipSource.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}else {//上传类型为单文件,直接下载
String fileNam = pd.getString("FILE");
String fileName = fileNam.substring(23);
FileDownload.fileDownload(response, PathUtil.getClasspath() + Const.FILEPATHFILEOA + fileName, fileName);
}
}
获取文件的类型,并判断,多图即压缩包,单文件直接下载。
其实根本不用换源pip install tensorflow==2.1 -i https://pypi.tuna.tsinghua.edu.cn/simple
k8sIngress介绍Http代理Https代理Ingress介绍我们已经知道,Service对集群之外暴露服务的主要方式有两种:NodePort和LoadBalancer,但是这两种方式,都有一定的缺点:NodePort方式的缺点是会占用很多集群机器的端口,那么当集群服务变多的时候,这个缺点就愈发明显。LoadBalancer的缺点是每个Service都需要一个LB,浪费,麻烦,并且需要kubernetes之外的设备的支持。基于这种现状,kubernetes提供了Ingress资源对象,I
关于CStdioFileCStdioFile继承自CFile,一个CStdioFile 对象代表一个用运行时函数fopen 打开的C 运行时流式文件。流式文件是被缓冲的,而且可以以文本方式(缺省)或二进制方式打开。文本方式提供对硬回车—换行符对的特殊处理。当你将一个换行符(0x0A)写入一个文本方式的CStdioFile 对象时,字节对(0x0D,0x0A)被发送给该文件。当你读一个文件时
1.3扫描线种子填充算法 1.1和1.2节介绍的两种种子填充算法的优点是非常简单,缺点是使用了递归算法,这不但需要大量栈空间来存储相邻的点,而且效率不高。为了减少算法中的递归调用,节省栈空间的使用,人们提出了很多改进算法,其中一种就是扫描线种子填充算法。扫描线种子填充算法不再采用递归的方式处理“4-联通”和“8-联通”的相邻点,而是通过沿水平扫描线填充像素段,一段一段地来处理“4
今天刚刚到手一块ZCU104。要得,开干。PYNQ项目是一个支持Xilinx Zynq器件的开源软件框架,目的在于借助Python降低Zynq嵌入式系统开发门槛,有丰富的组件:可编程逻辑的控制 Jupyter Notebook接口 预安装的Python库 网络/USB/UART接口要使用Pynq,需要Pynq image和Zynq芯片,目前Pynq项目支持三个板:Digilent的Pynq-Z1 TUL的Pynq-Z2 Xilinx的ZCU104参考教程Pynq入门指南Get.
基于qemu-riscv从0开始构建嵌入式linux系统ch16. Framebuffer显示设备virtio-gpu-device本节我们给qemu添加一块虚拟的显示设备,方便后面研究一些GUI的应用。由于之前我们向系统添加了8组virtio-mmio设备,并且挂载了virtio-blk-device作为文件系统存储设备,这次我们再添加virtio-gpu-device设备:$SHELL_FOLDER/output/qemu/bin/qemu-system-riscv64 \-M quard-st
php 开发环境显示所有错误&lt;?phperror_reporting(E_ALL);ini_set('display_errors', 1);preg_replace preg_replace_callback 函数用法&lt;?php// http://php.net/manual/en/function.preg-replace.php// mixed preg...
如果你想练习SQL,恰巧你的电脑没有SQL环境,那么下面几个在线练习SQL的网站肯定能满足你的需求。TiDB“地址:https://tour.pingcap.com/”作为在2019 TiDB 黑客马拉松中斩获二等奖的项目,TiDB-Wasm 的诞生是WebAssembly (Wasm),[Golang]语言以及TiDB 社区碰撞结合的产物,旨在为用户提供一个可以轻松实验 SQL 语句,使用 MySQL 查询测试 TiDB 的 SQL 兼容性的方式。以命令行的形式展示。SQL F
作业三 文本文件中英语单词的频率作业要求:项目git地址:Assigment3_of_ASE作业简介step0-输出某个英文文本文件中 26 字母出现的频率,由高到低排列,并显示字母出现的百分比,精确到小数点后面两位step1:输出单个文件中的前 N 个最常出现的英语单词。step2: 支持 stop wordsstep3: 我们想看看常用的短语是什么, 怎么办呢?step...
vue,js书籍 Vue JS书籍 (Vue JS Books)Vue is a progressive framework for building user interfaces. Vue是用于构建用户界面的渐进框架。 The core library is focused on the view layer only, and is easy to pick up and integr...
图的染色问题,也就是图的遍历,比赛的时候以为要求最小的染色点,所以没啥思路,下来发现是没有要求的,那直接遍历就行了。数据很大,需要做好dfs的优化,要不会TTTTTTTTT! 1 #include <bits/stdc++.h> 2 using namespace std; 3 int t; 4 const int MAXN=2e5+10; 5 vec...
一、简单的编译1、使用VisualStudio IDE编译首先进入GDAL的源代码目录,可以看到有几个sln为后缀的文件名,比如makegdal10.sln,makegdal80.sln,makegdal71.sln,makegdal90.sln 。这些文件是VisualStudio的工程文件,后面的数字对应的VS的版本号,71表示的VS2003,80表示VS2005,90表示VS