2013-02-02 114 views
0

好吧,我有一個網站,有許多不同的數據集可供下載。現在,我可以通過PHP來循環使用並強制下載所需的所有文件,而不是逐個單擊並單擊每個文件並選擇將每個文件保存到我的PC。在這種情況下,我是用戶,無法訪問服務器端。我已閱讀的大部分內容都是爲其他用戶設置自己的網站以下載內容。有沒有辦法在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)

現在這些地址沒有內容,但下載本身,所以如果我在我的地址欄中鍵入它們,下載彈出窗口只會提出要求保存或打開。

我可以在腳本中寫入一些東西,讓它通過我新建的一系列下載地址進行循環,並以「保存」的形式開始下載,而無需向我索要每一個?

+0

以防萬一有人仍在尋找解決這個問題..我在這裏找到它..http://blog.drinkncode.com/download-multiple-files-through-loop-in-php/ –

回答

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); 
?> 

如果我錯誤地解釋了你的設置,請在評論中告訴我。

+0

我想想你有什麼會幫助我。我會研究cURL和wget。有了這些選項,我可以包裝一個循環,它可以做多個文件,對吧?文件擴展名是否重要?我想大部分我將要下載的是。tar –

+0

文件類型是什麼並沒有關係,是的,這將與循環一起工作。讓我知道事情的後續! – Floris

相關問題