2

我这里有个小问题。我正在使用著名的 Aria2C 文件下载器,并且我有一个需要下载的链接列表。我知道我可以使用:

aria2c -o myOutputFile.exe http://www.fooBar.com/fooBarVirus.exe

下载单个文件并将其命名为myOutputFile.exe. 问题是我必须下载一些文件并将其命名为 0.pdf、1.pdf、2.pdf、3.pdf...,因为稍后我将组装所有这些 pdf。

我会尝试更好地解释。如果我将以下链接提供给 aria2c:

http://www.fooBar.com/myPDF.pdf
http://www.fooBar.com/kindness.pdf
http://www.fooBar.com/crazyPdf.pdf
...
http://www.fooBar.com/myLastPdf.pdf

我必须下载这些文件并将其命名为遵循链接插入顺序的整数序列。我的意思是文件名与链接顺序有关,但我不需要按顺序下载它们

假设我给了 Aria2C 之前的链接。以下输出将是我的问题的有效输出:

 Time: 0
 Link: http://www.fooBar.com/crazyPdf.pdf
 Filename: 2.pdf

 Time: 1
 Link: http://www.fooBar.com/myPDF.pdf
 Filename: 0.pdf

 Time: 2
 Link: http://www.fooBar.com/kindness.pdf
 Filename: 1.pdf

 ...

 Time: N
 Link: http://www.fooBar.com/myLastPdf.pdf
 Filename: N.pdf

我知道这是一个令人困惑的问题,所以如果您有任何疑问,请发表评论,我会尽快回答。谢谢!

4

1 回答 1

6

好的,让我们从一个pdfs.txt包含 PDF 的 URL 的文件开始:

http://www.fooBar.com/myPDF.pdf
http://www.fooBar.com/kindness.pdf
http://www.fooBar.com/crazyPdf.pdf
http://www.fooBar.com/myLastPdf.pdf

我加入了一个小助手脚本,将文件中的 URLpdfs.txt转换为 Aria2c 接受的文件格式。该脚本使用数组中 URL 的数字索引作为 PDF 的新文件名。

<?php
$urls = __DIR__ . '/pdfs.txt';
$downloads = file($urls);

$targetFolder = __DIR__; // define your taget folder
$ariaDownloadList = '';
foreach($downloads as $idx => $url)
{
    $pdfName = $idx . '.pdf'; // 0.pdf ... N.pdf

    // add new download entry
    $ariaDownloadList .= $url;
    $ariaDownloadList .= '  dir=' . pathinfo($targetFolder, PATHINFO_DIRNAME) . PHP_EOL;
    $ariaDownloadList .= '  out=' . $pdfName . PHP_EOL;
}

file_put_contents('ariaDownloadsFile.txt', $ariaDownloadList);

这将输出ariaDownloadsFile.txt具有以下内容的文件:

http://www.fooBar.com/myPDF.pdf
  dir=C:\pdfs
  out=0.pdf
http://www.fooBar.com/kindness.pdf
  dir=C:\pdfs
  out=1.pdf
http://www.fooBar.com/crazyPdf.pdf
  dir=C:\pdfs
  out=2.pdf
http://www.fooBar.com/myLastPdf.pdf  
  dir=C:\pdfs
  out=3.pdf

然后只需运行以下命令:

aria2c -i ariaDownloadsFile.txt
于 2015-11-27T03:25:26.213 回答