0

好的,所以,我有一个网站,其中有许多不同的数据集可供下载。现在,与其逐个浏览并单击每个文件并选择将每个文件保存到我的电脑,有没有一种方法可以使用 PHP 循环并强制下载我想要的所有文件。在这种情况下,我是用户,无法访问服务器端。我已经读过的大部分内容都是关于人们建立自己的网站供其他用户下载东西的。

细节:

现在,我知道每个文件都位于 blahblah.com/downloadset1, /downloadset2, ... , /downloadsetN

然后我可以设置一个文本框,我可以在其中输入我想要的每个集数,用逗号分隔。例如:[1、2、300、4325]

从那里我可以让脚本将文本框值附加到“blahblah.com/downloadset”的末尾

这会给我一个数组(blahblah.com/downloadset1、blahblah.com/downloadset2、blahblah.com/downloadset300、blahblah.com/downloadset4325)

现在这些地址没有内容,只有下载本身,所以如果我在地址栏中输入它们,下载弹出窗口只会出现要求保存或打开。

我可以在脚本中写一些东西,让它循环通过我的新下载地址数组并以“保存”的形式开始下载,而不需要它询问我每一个吗?

4

1 回答 1

2

如果您希望能够保存文件,则必须在可以编写的机器上运行脚本。因此,假设您在本地机器上运行 php;那么您可能需要回答两个问题。

1) 如何列出要下载的文件的名称?

2) 如何以编程方式下载文件?

从你的问题听起来你已经弄清楚了第一部分。我将只介绍第二部分 - 制作一个下载列表中所有文件的 php 脚本。有两种常见的技术 -curl (sometimes written cURL)wget。当您键入“使用 curl 下载文件”或“使用 wget 下载文件”时,您可以找到大量信息,因此我将仅举一个最小的示例:这会从 读取一张图像http://www.floris.us/SO/IMG_0250.jpg,并将本地副本保存在image1.jpg. 如果将脚本另存为curlTest.php,则可以使用

php curlTest.php

你应该可以从这里开始(建立一个循环,添加诊断,错误检查......)

<?php
$url = 'http://www.floris.us/SO/IMG_0250.jpg';
$outputfile = "image1.jpg";
$cmd = "wget -q \"$url\" -O $outputfile";
exec($cmd);
?>

如果我误解了您的设置,请在评论中告诉我。

于 2013-02-02T02:50:30.893 回答