Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Как отправить файл через сокеты?

Сообщения:  [1-10]   [11-14] 

 
 автор: JIEXA   (10.05.2006 в 15:12)   письмо автору
 
   для: JIEXA   (10.05.2006 в 00:11)
 

вопрос все ещё актуален

   
 
 автор: JIEXA   (10.05.2006 в 08:26)   письмо автору
 
   для: JIEXA   (10.05.2006 в 00:11)
 

-

   
 
 автор: JIEXA   (10.05.2006 в 00:11)   письмо автору
2.2 Кб
 
   для: JIEXA   (09.05.2006 в 14:44)
 

Мне тут друг помогал, но тоже ничего не вышло. Теперь ни файл ни данные не шлются.
Прикрепляю то, что получилось в аттач, пожалуйста помогите привести в рабочие состояние скрипт, очень надо.

Функция вызывается так:

<?
print sendFile("sitename.ru"80"/read.php""./probe.txt""probe.txt",  
         
"filecontent", array("mirror" => "on"));
?>

   
 
 автор: JIEXA   (09.05.2006 в 14:44)   письмо автору
 
   для: JIEXA   (08.05.2006 в 15:07)
 

Вообщем мне понадобилось ещё сделать отправку дополнительных полей вместе с файлом.. Но никак не получается:
<? 
function sendfile($host$port$path$filename$name$field$fields=array())  

    
$fdata "name=".urlencode("jiexa")."&pass=".urlencode("mypass")."\r\n\r\n"

    
srand((double)microtime()*1000000);  
    
$boundary "---------------------".substr(md5(rand(0,32000)),0,10);  

    
$clength "--$boundary\r\n";  
    
$clength.= "Content-Disposition: form-data; name=\"$field\"; filename=\"$name\"\r\n";  
    
$clength.= "Content-Type: ".mime_content_type($filename)."\r\n\r\n"
    
$clength.= "\r\n--$boundary--\r\n";  

    
$header  "POST $path HTTP/1.0\r\n";  
    
$header .= "Host: $host\r\n"
    
$header .= "Referer: $host\r\n"
    
$header .= "Content-type: multipart/form-data, boundary=$boundary\r\n";  
    
$header .= "Content-length: ".intval(filesize($filename)+strlen($clength)+strlen($fdata))."\r\n\r\n"
    
$header .= "--$boundary\r\n";  
    
$header .= "Content-Disposition: form-data; name=\"$field\"; filename=\"$name\"\r\n";  
    
$header .= "Content-Type: ".mime_content_type($filename)."\r\n\r\n";  

    
$fp fsockopen($host$port);  
    
fputs($fp$header); 
    
fputs($fp$fdata);  

    
$fp2 fopen($filename"r");  

    while (!
feof($fp2))   
    {  
        
fputs($fpfgets($fp21024*10));  
    }  

    
fclose($fp2);  

    
fputs($fp"\r\n--$boundary--\r\n");  

    
$line "";  

    while (!
feof($fp))   
    {   
        
$line .= fgets($fp1024);   
    }  

    
fclose($fp);  

    return 
$line;  

?>


Файл отправляется, а данные из переменной $fdata не отправляются. В чем ошибка?

   
 
 автор: JIEXA   (08.05.2006 в 15:07)   письмо автору
 
   для: JIEXA   (08.05.2006 в 12:05)
 

сделал!! может кому понадобится - прикрепил в атаче

   
 
 автор: JIEXA   (08.05.2006 в 12:05)   письмо автору
 
   для: cheops   (08.05.2006 в 09:39)
 

Я думаю разбить - не проблема.
Меня больше интересует, как его отправить частями можно.

   
 
 автор: cheops   (08.05.2006 в 09:39)   письмо автору
 
   для: JIEXA   (08.05.2006 в 02:40)
 

Скрипт, который разбивает файл на части и затем склеивает его обратно можно найти в теме по ссылке http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=827.

   
 
 автор: JIEXA   (08.05.2006 в 02:40)   письмо автору
 
   для: cheops   (08.05.2006 в 00:49)
 

На сервере. Я просто делаю автоматический загрузчик файлов на несколько бесплатных файл-сервисов, типа rapidshare.de, filefactory.com и т.д. Очень удобно заливать через одну форму сразу на несколько хостингов :)

   
 
 автор: isset   (08.05.2006 в 00:49)   письмо автору
 
   для: JIEXA   (08.05.2006 в 00:17)
 

думаю никак, можно конечно sleep заюзать + fseek и какую функцию для получения текущего места

   
 
 автор: cheops   (08.05.2006 в 00:49)   письмо автору
 
   для: JIEXA   (07.05.2006 в 13:53)
 

А 40Мб где хотите резать на куски на клиенте или на сервере?

   

Сообщения:  [1-10]   [11-14] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования