是否可以根据表格结果从其他网站将某些内容下载到我公司提供的 zip 文件下载中?

Is it possible to download something from another website into a zip file download supplied by my company based on form results?

抱歉,标题令人困惑,但我已尽我所能将其浓缩。需要说明的是,我公司提供了一组可以从我们的网站上(免费)下载的产品(下载文件是一个 zip 文件)。在我们的产品中,我们包括一些目前托管在我们个人服务器上的视频,但我们也有一些视频托管在 Vimeo 上。为了减少服务器流量和下载时间,提出了这个问题,"Can we just run the video download from Vimeo instead of our own server"?好吧,这个问题的答案是肯定的,事实上 Vimeo(如果您是专业会员)提供了不同的方式来下载您自己的个人视频,通过他们的 API 或视频设置中的永久 link。我决定采用永久性 link 路线,因此通过视频设置 Vimeo 提供 5 种不同的 link,每种都根据所需的质量(YAY!)。

但是,我的问题是,是否有某种方法可以通过 php 或 html 在下载页面上创建一个下拉菜单 selection,这取决于您 select(由于带宽等原因)我们提供的内容是否以我们产品的正确文件结构与视频一起下载?

让我澄清一下,不是在下载的 zip 旁边,而是实际放在里面。

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

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>

有没有一种方法可以让下载的文件的格式选项代替 "Product/Videos/example.mp4"?而不是在旁边(只是为了让客户不必弄乱文件树)。

是的,您可以使用 jszip 加载 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();
}

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