2012-06-15 2 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); 
?> 

, когда я запускаю этот скрипт он только отправляет первый элемент в массиве вместо цикла через весь массив то, что я делаю неправильно? Я хочу, чтобы он перебирал все файлы в каталоге, а затем отправлял их в 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 я использовал этот код, и теперь происходит то, что он просто загружает первый файл в каталог, –

Смежные вопросы