【问题标题】:Download/files management software for clients for website网站客户端下载/文件管理软件
【发布时间】:2019-12-07 18:29:16
【问题描述】:

我想要分发给客户 (B2B) 的软件的不同版本。例如,一个可能是基本版、扩展版和试用版。这些将是单独的 zip 文件。它们也是版本化的。

这些文件可供客户试用或在他们注册许可证后提供,不同的许可证将使他们能够访问“软件”的不同变体(它不完全是软件,它只是一个文件,但为了这个问题没关系)。

将这些文件放在网络服务器上并允许受密码保护的 HTTP 访问并不理想,因为它不允许足够细粒度的权限模型,例如例如,我可能想让一个客户端访问更新或 beta 版本,而不是另一个,我最终会为每个版本的每个客户端创建一个单独的文件夹,这非常混乱并且意味着重复很多文件。

我想我正在寻找一些简单的基于网络的“下载门户”软件,我可以在其中为每个客户创建一个网络帐户。理想情况下,这将支持“发布渠道”或类似的概念,然后我可以将每个客户分配到一个发布渠道,以及除此之外的特定文件,以控制哪个客户可以访问哪些文件。我在主网站上使用了一个自托管的 WordPress,所以我认为在像 download.company.com 这样的子域上拥有这样一个门户会很棒,并且理想情况下它会使用 WordPress 身份验证机制。

我不想自己编写这样的软件,而且我也没有找到可以做类似事情的现有 WP 插件。我提到了 WP,但这不是 WP 问题,我正在寻找任何(好的)解决方案 - 如果它能够使用 WP 身份验证机制,那将是一个非常有用的功能。

是否存在这样的解决方案?我最好怎么做?似乎任何向客户分发文件和/或软件的 B2B 公司都会遇到这个问题。他们都开发自己的解决方案吗?

我不能 100% 确定这是否适合 StackOverflow、SuperUser、WebApps 或 Webmasters 网站,如果这里不合适,我很高兴被引导到最合适的地方。

【问题讨论】:

    标签: wordpress web download software-distribution


    【解决方案1】:

    你可以这样做:

    • 创建一个重定向脚本页面,将文件 ID(或文件名或其他)作为参数,例如 download.php?id=2432 或 POST 值
    • 在该页面中,您可以检查用户是否已登录以及该用户是否具有下载文件的权限,例如,您可以有一个包含 user_id 和 file_id 行的表,如果该行存在,则用户可以下载文件
    • 使用php隐藏真实url下载
    // your validation
    if($isUserValid)
    {
        $path = $fileName;
        $size = filesize($path);
        $fp = fopen($path, "rb");
        $content = fread($fp, $size);
        fclose($fp);
    
        header("Content-length: ".$size);
        header("Content-type: application/octet-stream");
        header("Content-disposition: attachment; filename="YOURFILEPATH" );
        echo $content;
    }
    exit();
    

    【讨论】:

    • 感谢您发布您的答案。这几乎是一个自制的解决方案。我希望会有更多“开箱即用”的东西。
    猜你喜欢
    • 2023-03-19
    • 2022-12-15
    • 2013-06-26
    • 1970-01-01
    • 2018-01-28
    • 2016-05-09
    • 2021-02-19
    • 2014-07-05
    • 2018-12-01
    相关资源
    最近更新 更多