下载服务 php,java - 为Java应用程序提供PHP下载服务 - SO中文参考 - www.soinside.com

我想知道如何使下载服务器更加强大。目前,我有一个服务器,在https上存储压缩文件,用随机哈希命名,由我的数据库索引。包含的目录不允许列表(htaccess),避免手动下载直接浏览服务器上的目录。

Java应用会显示文件的描述,如果用户想下载,只要点击下载即可。Java应用,如果该用户被允许下载,就发送至服务器上的我的PHP脚本的凭证,PHP脚本检查后,再次检查该非常用户是否被允许下载该文件,从DB中检索出由用户要下载的文件ID索引的文件名.zip,并回传该文件名。Java应用程序读取该文件名,并使用以下方法下载该文件Url url = new URL("https://myserver.com/assets/theAssetToDownload.zip")

URLConnection urlConn = url.openConnection();

InputStream is = urlConn.getInputStream();

FileOutputStream fos = new FileOutputStream("test.zip");

byte[] buffer = new byte[4096];

int len;

while ((len = is.read(buffer)) > 0) {

fos.write(buffer, 0, len);

}

(缩短了代码,需要trycatch,isfos.close()等等等等)

目前为止还不错,效果不错... ... 但是... 如果有人在浏览器中输入直接的网址,文件也会被下载,没有明确的授权检查......

所以我想,嘿,除了PHP脚本外,不要让任何人访问assets目录。同样,这只是一个简单的htaccess。

但是下载是怎么服务的呢?

那会不会是我的PHP脚本中的一个头和输出,比如。header("Content-type: application/octet-stream");

header("Content-disposition: attachment;filename=test.zip");

readfile(test.zip);

这样的话,我怎么从Java端读取?也可以用getInputStream()?

我知道这个问题是通用的。我如何才能安全地做到这一点?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值