2011-05-29 115 views
1

好的,我有一個問題的傢伙。我想通過將鏈接放入TEXTAREA並點擊提交來遠程上傳(從站點複製圖像到我的服務器)多個圖像。我只是不知道如何使這可能與多個圖像。遠程上傳多張圖片

我可以使用copy();函數,但不適用於TEXTAREA中的多個條目。

我也想限制遠程上傳功能多達30個遠程鏈接和一個圖像不應超過10MB - 但我不知道如何開始。我聽說cURL能夠做到這一點,我也聽說file_get_contents();與file_put_contents();可以做出類似的事情,但我仍然無法弄清楚如何自己做。

幫助任何人? :)

回答

1

您可以使用與您現在使用單個圖像相同的過程,但在一個循環中執行。

$lines = explode("\n", $_POST['textarea']); 
if(count($lines) > 30) { 
    die('Too many files'); 
} 
foreach($lines as $line) { 
    $srcfile = trim($line); 
    //copy $srcfile here 
    //check size of the file with filesize() 
} 
+0

我正在嘗試此解決方案。你的解決方案只是另一個問題:我如何將所有保存的圖像輸出到我的服務器中的鏈接? – Aborted 2011-05-29 11:39:58

+0

我可以讓它只工作,給我鏈接所有鏈接的最後一個鏈接,而不是所有的鏈接。 – Aborted 2011-05-29 12:07:23

+0

構建鏈接的數組。您可以在foreach循環中將元素添加到數組中。 – 2011-05-29 12:48:43

1

您需要解析textarea以外的URL。你可以在這個PHP端使用正則表達式。

然後,您可以檢查解析URL和array_slice()第30,或錯誤,如果超過30

你會那麼需要將文件從遠程服務器複製。您可以檢查Content-Length標頭以確保文件小於10mb。您可以使用HEAD而不是GET

1

我不熟悉PHP,但我建議如下:

解決多個文件上傳問題:

  • 分裂用回車在文本區域的內容

  • 然後重複它們以獲得圖像

preser每個文件的大小在一個變量中,但如何獲得大小?

  • 你可以做的exec(系統)調用知道文件的大小(這需要一個完整的圖像下載,但它是最便捷的方式),或者您可以使用Content-Length頭值的,如果內容長度超過10毫克然後跳過它並移動到下一個項目。

如何下載圖像?

  • 使用文件放置內容但確保將編碼設置爲二進制編碼以保留內容類型。