高分:用java实现服务器上多个文件先打包,然后下载,下载完成后删除包!

高分:用java实现服务器上多个文件先打包,然后下载,下载完成后删除包!,第1张

向压缩包里添加文件时直接把服务器上的文件用流读进来就行,不用非把文件放到同一个目录,用程序生成压缩包和用命令行工具是不一样的,不要想当然。 写了个示例程序,你可以参考一下。这个示例不使用临时文件,把 OutputStream os替换成你下载用的输出流就可以实现一边压缩一边下载。注意javautilzip不支持非ascii文件名。想支持中文文件名可以用apache ant或其他的库。
import javaio;
import javautilzipZipEntry;
import javautilzipZipOutputStream;
public class ZipTest {
public static void main( String[] args ) {
try {
writeZip();
} catch ( IOException e ) {
eprintStackTrace();
}
}
private static void writeZip() throws IOException {
String[] files = { "/ws/dir1/file1", "/ws/dir2/file2", "/ws/file3", "/pub/successwav" };
OutputStream os = new BufferedOutputStream( new FileOutputStream( "/ws/archivezip" ) );
ZipOutputStream zos = new ZipOutputStream( os );
byte[] buf = new byte[8192];
int len;
for ( String filename : files ) {
File file = new File( filename );
if ( !fileisFile() ) continue;
ZipEntry ze = new ZipEntry( filegetName() );
zosputNextEntry( ze );
BufferedInputStream bis = new BufferedInputStream( new FileInputStream( file ) );
while ( ( len = bisread( buf ) ) > 0 ) {
zoswrite( buf, 0, len );
}
zoscloseEntry();
}
zosclose();
}
}

用parcel项目做完后,使用如下命令,在本地可以很顺畅的运行

然后想将项目打包发送到github上预览,首先build打包,发现包含svg,文件不能被打包,求救无果,自己google查询解决方案,看到说可以将xlink:href改成href。我试了一下,果然行,但是打包后的文件上传后还是不能进行预览。

于是看视频说要在packagejson文件中加一行homepage,指向我github上运行的地址

于是添加了,无果,后来发现貌似要在打包命令行中这样写

--no-cache表示清除缓存
--out-dir build 表示建立打包到build文件夹
--public-url / 表示静态资源文件夹路径
参考的这个( >

本文章前端代码是基于vue+webpack开发的

Nginx是一款轻量级的Web 服务器/反向代理服务器

首先,webpack配置如下

在开发过程中,我们是通过npm run dev在开发环境中运行代码
如果要部署到生产环境中,可以运行npm run build进行上线打包

打包完成后,会发现项目中多了dist这个文件夹

执行结果和webpack的配置文件一致。

代码被webpack打包完成后下一步就是部署到服务器上,此文仅适合于前端代码是部署在windows *** 作系统的nginx服务中。
这里假设:
Windows *** 作系统:windows server 2008 64位
Nginx服务:nginx-1122 64位

1下载nginx-1122 64位解压,假设nginx-1122放在D:nginx-1122目录中,nginx目录结构。如图下

2、前端代码放在D:nginx-1122html目录中,dist目录就是刚刚前端打包完的代码。如图下

3、在D:nginx-1122conf目录中,有个nginxconf配置文件,进行编辑这个文件


4、假设前端的端口号为8082,如果端口号被占用,请修改为其它端口号。后台服务访问地址>

5、打开cmd控制台,进入目录D:nginx-1122中,用start nginx命令启动服务,然后用tasklist /fi "imagename eq nginxexe",查看nginx服务是否启动。

4、如果改变配置文件时,需要用nginx -s reload 命令重启nginx工作进程。

5、关闭服务
nginx -s stop 
nginx -s quit 安全关闭 
taskkill /F /IM nginxexe > nul 关闭所有nginx服务

1、前言
平时写react页面,可以在cmd或者terminal里面npm start /npm run start进行测试,如果想要打包放到服务器上,需要怎么做呢?
经过踩坑终于将自己的react页面放到的服务器上运行起来,并且通过自己的"ip:port//",可以在局域网内的电脑上跑起来的。

真实部署到云上或者公司服务器上还没有进行验证,因为想着和部署在本地步骤应该不差多少。

2、打包
在cmd/terminal里切到项目的工作控件下。
输入 npm run dist
等待生成dist文件夹。这就是最终打包好的资源文件夹。如果步骤出错了,需要根据线索自己排查- -!,

3、放到服务器上。
我的webapp项目是在intellij idea上建立的项目,配置tomcat步骤和新建项目步骤可以自行百度。很多前辈们写过相应的文章。当项目建立好之后,可以尝试跑一下看看界面是否为web目录下的indexhtml/indexjsp?文件里面的布局。
将dist文件复制到web项目的web文件夹之下。然后重新跑tomcat就好。

4、尝试
tomcat成功启动之后,在浏览器地址栏输入对应的地址就好。默认地址ip+端口/为web目录下文件夹名称。
也就是dist文件夹的名称可以改为自己的项目名称。
例如,dist不修改的话。我的地址为我的ip 例: >1首先将SpringBoot项目打包成JAR包,然后通过FTP工具上传到Linux,执行如下命令:

该命令执行后,启动jar,一旦shell窗口关闭后,JAR就停止运行了

若需要项目在后台一直运行,需要通过如下命令启动JAR:

上述 2 和 1 的含义如下:

0 标准输入 (一般是键盘)

1 标准输出 (一般是显示屏,是用户终端控制台)

2 标准错误 (错误信息输出)

上述 consolelog 为日志文件,需要在Linux中提前创建:

1实时跟踪日志:

实时跟踪日志,只要执行findAll这个方法,就会将其对应的日志打印出来,用来跟踪特定的日志运行

--line-buffered 是一行的缓冲区,只要这一行的缓冲区满了就会打印出来,所以可以用于实时监控日志

2tailf -n 200 consolelog 打印最后200行日志,并持续跟踪日志

tail -n 500 consolelog | more 分页查看最后500行日志

1编写一个shell脚本,命名为 start_JARsh,脚本和可执行JAR放在同一目录下

2执行 start_JARsh 脚本,启动可执行JAR

添加可执行权限:

执行脚本:


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/12994074.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2025-08-29
下一篇2025-08-29

发表评论

登录后才能评论

评论列表(0条)