文件分享网站(快传)

2019-09-11 23:14:30 +08:00
 zgcwkj

本人不会 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

4997 次点击
所在节点    分享创造
9 条回复
dewi
2019-09-12 01:00:31 +08:00
支持!
kingfalse
2019-09-12 08:24:13 +08:00
跟 Firefox Send 相比有什么优点?
vazo
2019-09-12 10:08:52 +08:00
棒!
zgcwkj
2019-09-12 13:29:49 +08:00
@kingfalse #2 优点部署简单,文件时放在你的服务器上面的,而且你也可以改源码~
Deteriorator
2019-09-12 14:33:31 +08:00
上传了 git 安装包,提示:文件上传错误
zgcwkj
2019-09-12 15:26:21 +08:00
@Deteriorator #5 确实是上传错误,可能是源码本身有问题吧~也可能是大文件什么的,,,
googlefans
2019-09-12 20:28:17 +08:00
不错支持
hyserendipity
2019-09-15 09:09:44 +08:00
两个问题,一个是最大支持传多大的文件,二是文件存储在哪,安全性如何保障
zgcwkj
2019-09-15 09:22:34 +08:00
@hyserendipity #8
1、文件大小是没有上限的。至于有些文件上传不了,可能是源代码问题(后期我会把它修复了)
2、文件保存到我的服务器中,如果害怕安全保障不了的,可以尝试部署到自己的服务器中

第一、我能确保,我的 MD5 不会泄露。
第二、就算 MD5 被计算出来了,也有可能文件被删除了。
第三、我敢保证,我不会去看一样里面的文件,随手删除文件夹。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/600205

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX