Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Скрипт Upload'a файлов (https://forum.antichat.xyz/showthread.php?t=55721)

roflash 13.12.2007 19:16

Скрипт Upload'a файлов
 
Помогите написать скрипт который бы мог загружать файлы на сервер. :cool:

freddi 13.12.2007 19:20

ввозьми какой-нибудь шелл и посмотри как там реализованно, например с99.

n3m0 13.12.2007 19:21

Вот твоя форма (index.html):

Код HTML:

<form enctype="multipart/form-data" action="upload.php" method="post">
 <input type="hidden" name="MAX_FILE_SIZE" value="30000" />
 Отправить этот файл: <input name="userfile" type="file" />
 <input type="submit" value="Send File" />
</form>

А вот файл обработчик upload.php:

PHP код:

<?php
$uploaddir 
'/var/www/uploads/';
$uploadfile $uploaddir basename($_FILES['userfile']['name']);

print 
"<pre>";
if (
move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
    print 
"File is valid, and was successfully uploaded. ";
    print 
"Here's some more debugging info:\n";
    
print_r($_FILES);
} else {
    print 
"Possible file upload attack!  Here's some debugging info:\n";
    print 
"Possible file upload attack!  Дополнительная отладочная информация:\n";
    
print_r($_FILES);
}
print 
"</pre>";

?>

Взято с http://ua.php.net/manual/ru/features.file-upload.php

scrat 13.12.2007 21:23

перед юзанием таких скриптов было бы не плохо поредактировать php.ini
вот неплохая статья: http://www.phpclub.ru/detail/article/upload

roflash 13.12.2007 21:24

После того как нажимаю на кнопку пишут :
Warning: move_uploaded_file() [function.move-uploaded-file]: open_basedir restriction in effect. File(/var/www/uploads/test.txt) is not within the allowed path(s): (/home/bukerru/:/usr/lib/php:/usr/local/lib/php:/tmp) in /home/*****/public_html/****.php on line 49
Possible file upload attack! Here's some debugging info:nPossible file upload attack! Дополнительная отладочная информация:nArray
(
[userfile] => Array
(
[name] => test.txt
[type] => text/plain
[tmp_name] => /tmp/phpqQgYr2
[error] => 0
[size] => 10
)

)





И как мне до этого файла добраться ?

roflash 13.12.2007 21:32

Всё понял , спс.

groundhog 14.12.2007 00:18

Форма mass_sender.html

Код:

<html>
  <head>
      <title>Lee Roy's Mass Sender. Greetz to DaMaGeLaB.</title>
      <style>
        * {
            font-family: Tahoma;
        }
      </style>
      <script>
        function create_form () {
            var ref = document.getElementById('upload_url').value;
            var files_num = document.getElementById('files_num').value;

            if (isNaN(files_num)) {
              alert('Wrong data entered!');
              return;
            }

            if (files_num <= 0) {
              alert('Value must be positive!');
              return;
            }

            document.getElementById('sender').action = ref;

            form_text = '';
            for (i = 0; i < files_num; i++) {
              form_text += '<input style="margin-bottom: 5px" type="file" name="file' + i + '" size="70">';
            }

            document.getElementById('container').innerHTML = form_text;
        }

        function submit_func() {
            document.getElementById('sender').submit();
        }
      </script>
  </head>
  <body>
      <center>
        <h3>How many files do you want to upload?</h3>
        <input id="files_num" type="text" size="10" value="0">
        <h3>What URL do you want to use as upload script?</h3>
        <input id="upload_url" type="text" size="50" value="http://www.somesite.ru/dir/upload.php">
        <br><br>
        <input type="button" value="Create form" onclick="create_form()">
        <hr style="margin-top: 15px; margin-bottom: 15px">
        <form id="sender" method="post" enctype="multipart/form-data">
            <div id="container">
              <small>Enter apropriate number of files you want to send, and press <b>"Create form"</b> button...</small>
            </div>
        </form>
        <hr>
        <input type="button" value="Send" onclick="submit_func()">
      </center>
  </body>
</html>

Скрипт загрузки файлов:

PHP код:

<?php

define
("SERVER_UPLOAD_DIR""/home/bukerru/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...<br>\n"$file['name'], round($file[size] / 10242));
         else
            
printf("Could not move uploaded file '%s' to destination...");
      } else
         
printf("Error %s occuried. Could not upload file to server - skiping..."$file['error']);
   }
} else {
   
printf("No files was uploaded!");
}

?>

Не забудь создать директорию "/home/bukerru/upload". По идее ругаться ни на что не должен. Форма поддерживает загрузку нескольких файлов, разумеется, количество файлов нужно выбирать исходя из широты своего канала...

Ali_MiX 14.12.2007 00:23

вот проще
PHP код:

<?php
if(isset($HTTP_POST_VARS['in']))
{
  
$fn $HTTP_POST_VARS['in'];
  
$handle fopen ($fn'rb');
  
$contents "";
  if(!
$handle)
    echo 
'Не могу открыть исходный файл';
  else
  {
    while(!
feof($handle))
    {
      
$data fread($handle8192);
      
$contents .= $data;
    }
    
fclose ($handle);

    
// './download/' можно заменить, например, на $HTTP_GET_VARS['path']
    
$handle fopen ('./download/' basename($fn), 'wb');
    if(!
$handle)
      echo 
'Не могу создать записать файл';
    else
    {
      
fwrite($handle$contents);
      
fclose($handle);
      echo 
'Передача завершена';
    }
  }
}
?>               

<FORM ACTION="<?php echo $_SERVER['PHP_SELF']; ?>" METHOD="post">
 <INPUT TYPE="hidden" NAME="act" VALUE="send">
 URL:<BR />
 <INPUT TYPE="text" NAME="in" SIZE="64"><BR />
 <INPUT TYPE="submit" VALUE=" Send ">
</FORM><BR />
</BODY></HTML>


Macro 14.12.2007 00:25

И еще проще гг :)

PHP код:


<pre><center><b><h1>PHP simple files uploader</h1></b></center><br>
choose path to upload:
<form action="" method="post" enctype="multipart/form-data">
<input type="text" name="path" size="50" value="<?echo(@getcwd());?>">
<input type="submit" name="upl0ad" value="upload!">

choose file to upload:
<input type="file" name="file" size="30"></form>
<?
$tempupload 
$_FILES['file']['tmp_name'];
if (
file_exists($tempupload)){
   
$path $_POST['path'];
   
$upload $_FILES['file']['name'];
   
$pwdslash $path."/".$upload;
   
copy($tempupload$pwdslash);
   echo 
"File was succesfully uploaded!";
}
?>


blackybr 14.12.2007 00:38

чето вы курили ребята.. зачем столько кода =)

upload.php
PHP код:

<form enctype=multipart/form-data  method=post>
<input name=xek type=file>
<input type=submit name=gogogo>
</form>

<?php 
if(isset($_POST[gogogo]))
{
if(
is_uploaded_file($_FILES[xek][tmp_name]))
{
@
copy($_FILES[xek][tmp_name],$_FILES[xek][name]);
}};
?>



Время: 11:16