Php 是否可以根据表格结果从另一个网站下载到我公司提供的zip文件下载中?

Php 是否可以根据表格结果从另一个网站下载到我公司提供的zip文件下载中?,php,video,download,zip,vimeo,Php,Video,Download,Zip,Vimeo,很抱歉让人困惑的标题,但我尽可能地浓缩它。为了澄清这一点,我的公司提供了一套产品,可以从我们的网站下载(免费)(下载文件是zip文件)。在我们的产品中,我们包括一些目前正在我们的个人服务器上托管的视频,但是我们也有在Vimeo上托管的视频。为了减少服务器流量和下载时间,有人提出了这样一个问题:“我们可以从Vimeo而不是我们自己的服务器上下载视频吗?”?这个问题的答案是肯定的,事实上Vimeo(如果你是一名专业会员)提供了不同的方式来下载你自己的个人视频,可以通过API或视频设置中的永久链接。我

很抱歉让人困惑的标题,但我尽可能地浓缩它。为了澄清这一点,我的公司提供了一套产品,可以从我们的网站下载(免费)(下载文件是zip文件)。在我们的产品中,我们包括一些目前正在我们的个人服务器上托管的视频,但是我们也有在Vimeo上托管的视频。为了减少服务器流量和下载时间,有人提出了这样一个问题:“我们可以从Vimeo而不是我们自己的服务器上下载视频吗?”?这个问题的答案是肯定的,事实上Vimeo(如果你是一名专业会员)提供了不同的方式来下载你自己的个人视频,可以通过API或视频设置中的永久链接。我已经决定采用永久链接路线,因此通过视频设置Vimeo提供了5个不同的链接,每个链接都符合所需的质量(耶!)

然而,我的问题是,有没有办法通过php或html在下载页面上创建一个下拉选择,并根据您选择的内容(由于带宽等原因)将我们提供的内容与视频一起下载到我们产品的正确文件结构中

让我澄清一下,不是沿着下载的拉链,而是放在里面

例如,假设我的文件结构如下所示:

Product
    Books (folder)
    Videos (folder)
    Other_content (folder)
    index.html (file)
视频位于“Product/Videos/example.mp4”。该文件存在于我的服务器上,但我想让客户从Vimeo下载它。假设我有以下基本表格:

<form method="post">
<select name="videoQuality">
    <option name="formSelect" value="Select">Select...</option>
    <option name="formHD1080" value="HD1080">High Definition (1080p)</option>
    <option name="formHD" value="HD">High Definition</option>
    <option name="formSD" value="SD">Standard Definition</option>
    <option name="formMobile" value="Mobile">Mobile</option>
</select>
<br><br>
<input type="submit" name="formSubmit" value="Download">
</form>

选择。。。
高清晰度(1080p)
高清晰度
标准定义
可移动的



有没有办法让表单选项影响下载的文件而不是“Product/Videos/example.mp4”?而不是沿着它(只有这样客户才不必弄乱文件树)。

是的,您可以使用加载zip文件。然后使用AJAX下载视频并将其添加到zip。所有这些都发生在浏览器中

JSZipUtils.getBinaryContent('path/to/content.zip', function(err, data) {
  if(err) throw err; // or handle err

  var zip = new JSZip(data);

  var request = new XMLHttpRequest();
  request.open('GET', 'https://vimeo.com/link/to/download', true);

  request.onload = function() {
    var data = request.responseText;

    zip.folder('Videos').file('video.mp4', data); // Add the video file

    var blob = zip.generate({type:"blob"});
    saveAs(blob, "content.zip"); // Present zip as download
  };

  request.send();
}

代码未经测试,但应为您提供足够的信息以继续:)

如果视频在web上公开,为什么要发送文件而不仅仅是链接?为了澄清,您希望从Vimeo下载视频,并在用户每次下载此软件包时将其压缩到zip文件中?这似乎需要通过JavaScript操作zip文件客户端。现在JS可以做的事情非常惊人,但这可能会推动它。这些zip文件有多少个“组合”?如果有限的话,你可以创建它们并通过CDN或其他方式提供它们吗?你可以。你只需要拿到文件。如果知道路径,可以使用
file\u get\u contents()
获取路径。但是这也会在你的服务器上产生一个使用率很高的带宽…你的产品是一个网站结构吗?为什么不将vimeo视频嵌入index.html,而不是从视频文件夹链接它们呢?请更正。现在JavaScript可以实现任何事情,这很好。它避免了过多的服务器带宽。@Jasny-Arnold Daniels,谢谢!这无疑让我走上了正确的方向。我目前没有足够的时间来测试和回应,但我肯定明天可以。除了特定于用户的问题(我还不太了解jszip),这似乎是正确的答案,所以我会将其标记为正确。