2012-06-15 62 views
0
<?php 
// open the current directory 
$dhandle = opendir('.'); 
// define an array to hold the files 
$files = array(); 

if ($dhandle) { 
    // loop through all of the files 
    while (false !== ($fname = readdir($dhandle))) { 
     // if the file is not this file, and does not start with a '.' or '..', 
     // then store it for later display 
     if (($fname != 'index.htm') && ($fname != 'torcache.php')&& ($fname != 'error_log') && (substr($fname, 0, 5) != 'other') && (substr($fname, 0, 2) != 'dd') && 
      ($fname != basename($_SERVER['PHP_SELF']))) { 
      // store the filename 
      $files[] = (is_dir("./$fname")) ? "(Dir) {$fname}" : $fname; 
     } 
    } 
    // close the directory 
    closedir($dhandle); 
} 


function curl_upload($url,$fileFormAttribute,$file){ 
     $ch = curl_init(); 
     curl_setopt($ch, CURLOPT_HEADER, 0); 
     curl_setopt($ch, CURLOPT_VERBOSE, 1); 
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
     curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible;)"); 
     curl_setopt($ch, CURLOPT_URL, $url); 
     curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, false); 
     curl_setopt($ch,CURLOPT_REFERER, 'https://torcache.net/'); 
     curl_setopt($ch,CURLOPT_ENCODING,"gzip"); 
     curl_setopt($ch, CURLOPT_POST, true); 
     $post = array($fileFormAttribute=>"@".$file); 
     curl_setopt($ch, CURLOPT_POSTFIELDS, $post); 
     $response = curl_exec($ch); 
     return $response; 
} 
foreach($files as $fname) 
{ 
error_reporting(E_ALL); 


$upload_result = curl_upload('http://torcache.net/autoupload.php','torrent','public_html/download_folder/'.$files[0]); 
} 
var_dump($upload_result); 
?> 

循環當我運行此腳本只在陣列中張貼的第一個項目,而不是通過整個陣列 我在做什麼錯循環的?我想讓它遍歷dir中的所有文件,然後將它們發佈到torcache然後將字符串返回給我;捲曲不通過這個數組

回答

6

.$files[0]不應該只是$fname在你的倒數第四行嗎?像這樣:

$upload_result = curl_upload('http://...','torrent','public_html/download_folder/'.$fname); 
+0

從頭開始,錯誤的行(+1) – ametren

+1

他也沒有檢查(再次)看它是否實際上是一個文件。填充數組的循環並不總是包含有效的文件名。 '$ files [] =(is_dir(「./$fname」))? 「(Dir){$ fname}」:$ fname;' – hafichuk

+0

@Scott Saunders我使用該代碼,現在發生的事情是它只上載目錄中的第一個文件, –