本人不会 PHP 框架,所以直接码代码了,大神轻打!
模仿这个网站做的, 文件空投
简单的实现了一遍,因为就是文件上传,文件秘钥下载。
PHP 的源码,我没用数据库,因为想着简单的实现,就用 Json 存储了。
使用到的开源项目:https://github.com/fising/big-file-uploader (因为支持分片和大文件上传,懒得写一遍了~)
我加的源码:
<?php
header('Content-type:text/json'); // 规定返回的内容是 Json 数据
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$jaonDataName = 'files/data.json';
// 文件存储位置
$filePath = getPath();
// 从文件中读取数据到 PHP 变量
$json_string = file_get_contents($jaonDataName);
// 把 JSON 字符串转成 PHP 数组
$datas = json_decode($json_string, true);
// 显示出来看看
// echo var_dump($datas);
if (isset($_REQUEST['key'])) {
foreach ($datas as $key => $value) {
if (in_array($_REQUEST['key'], $value)) {
echo json_encode([
'status' => 0,
'message' => $value
]);
exit();
}
}
echo json_encode([
'status' => 1,
'message' => '文件不存在'
]);
} else {
//保存上传的文件
$return = saveFile($filePath);
//文件保存成功
if ($return['status'] == 0) {
$name = isset($_POST['name']) ? trim($_POST['name']) : '';
// 添加新的数据
array_push($datas, array('key' => $return['key'], 'value' => $filePath . DIRECTORY_SEPARATOR . $return['name']));
// 把 PHP 数组转成 JSON 字符串
$json_string = json_encode($datas);
// 写入文件
file_put_contents($jaonDataName, $json_string);
}
// 输出到界面
echo json_encode($return);
}
}
详细看我博客:文件快传网站及源码
我怕大神说我骗访问量,所以我直接贴上源码下载地址吧!
网站源码下载:PHPUpLoad.7z
1
dewi 2019-09-12 01:00:31 +08:00 via iPhone
支持!
|
2
kingfalse 2019-09-12 08:24:13 +08:00 via Android
跟 Firefox Send 相比有什么优点?
|
3
vazo 2019-09-12 10:08:52 +08:00
棒!
|
5
Deteriorator 2019-09-12 14:33:31 +08:00
上传了 git 安装包,提示:文件上传错误
|
6
zgcwkj OP @Deteriorator #5 确实是上传错误,可能是源码本身有问题吧~也可能是大文件什么的,,,
|
7
googlefans 2019-09-12 20:28:17 +08:00
不错支持
|
8
hyserendipity 2019-09-15 09:09:44 +08:00 via iPhone 1
两个问题,一个是最大支持传多大的文件,二是文件存储在哪,安全性如何保障
|
9
zgcwkj OP @hyserendipity #8
1、文件大小是没有上限的。至于有些文件上传不了,可能是源代码问题(后期我会把它修复了) 2、文件保存到我的服务器中,如果害怕安全保障不了的,可以尝试部署到自己的服务器中 第一、我能确保,我的 MD5 不会泄露。 第二、就算 MD5 被计算出来了,也有可能文件被删除了。 第三、我敢保证,我不会去看一样里面的文件,随手删除文件夹。 |