Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   Аплоад файлов на сервер из пхп (http://forum.oszone.net/showthread.php?t=31064)

Vlad Drakula 05-06-2004 18:28 213047

вот понадобилось написать маленький файл менеджер на пхп.
все написал но вот аплоад не работает.

Код:

<html>
<body>
<?
$Password='';

if( isset( $HTTP_POST_VARS['password'] ) )
if( $HTTP_POST_VARS['password'] == $Password )
{

if( isset( $HTTP_POST_VARS['file'] ) )
{
  foreach( $HTTP_POST_VARS['file'] as $file=>$fd)
    if( is_file( './'.$file ) && !strpos( $HTTP_SERVER_VARS['PHP_SELF'], $file) )
      unlink('./'.$file );
}

if( isset( $HTTP_POST_FILES['userfile'] ) )
{
  if( move_uploaded_file( $HTTP_POST_FILES['userfile']['tmp_name'], './'.$HTTP_POST_FILES['userfile']['name'] ) )
  {
    print'файл загружен';
  }
  else
  {
    print'файл не загружен';
  }
}
print'
<form method="POST" action="index.php">
<input type="hidden" value="'.$Password.'" name="password">
<table border=1>
<tr>
  <td>
    имя файла
  </td>
  <td>
    удалить
  </td>
  <td>
    размер
  </td>
</tr>
';

$dir = opendir('./');

while( gettype( $file = readdir( $dir ) ) != 'boolean')
if( is_file( './'.$file ) && !strpos( $HTTP_SERVER_VARS['PHP_SELF'], $file) )
        print'
<tr>
  <td align="right">
    '.$file.'
  </td>
  <td align="center">
    <input type="checkbox" name="file['.$file.']" value="1" >
  </td>
  <td align="right">
    '.filesize('./'.$file).'
  </td>
</tr>
';

print'
<tr>
  <td colspan=3 align="center">
    <input class="button" type="submit" value="удалить" name="Submit">
  </td>
</tr>
</table>
</form>
<br />
<br />

<form method="post" action="./index.php" encoding="multipart/form-data">
<input type="hidden" value="'.$Password.'" name="password">
<table border=1>
<tr>
  <td>
    загузить файл на сервер
  </td>
  <td>
    <input type="hidden" name="MAX_FILE_SIZE" value="6000000">
    <input type="file" name="userfile">
  </td>
  <td align="center">
    <input class="button" type="submit" value="загрузить" name="Submit">
  </td>
</tr>
</table>
</form>
<br />
<br />
';
}
?>

<form method="POST" action="index.php">
<table border=1>
<tr>
  <td>
    Пароль:
  </td>
  <td>
    <input type="password" name="password">
  </td>
  <td colspan=2 align="center">
    <input class="button" type="submit" value="зайти" name="Submit">
  </td>
</tr>
</table>
</form>
</body>
</html>

но по непонятной причине файл не передается а передается только его место положение на локальной машине!

может кто с таким уже сталкивался?

Prisoner 06-06-2004 00:44 213048

enctype быть может, а не encoding в форме для загрузки файла.

Vlad Drakula 06-06-2004 08:04 213049

Prisoner
спасибо!

файлы аплоадятся, только вот грузфтся они не в ту дирикторию!

mar 06-06-2004 12:35 213050

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

define('UPLOADED_DIR',    '/путь от корня/имя каталога/');

Добавлено:

ЗЫ у меня еще для создания этих самых установочных файлов написан простой скрипт setup.php. Для UPLOADED_DIR:
Код:

echo 'define(\'UPLOADED_DIR\',    \'';
echo getenv("DOCUMENT_ROOT");
echo "/up/";
echo '\');<br>';


Vlad Drakula 06-06-2004 23:08 213051

mar
этот скрипт я пишу для чайников...
чтобы они могли его просто положить и рабоваться жизни...

настраивать я его там не имею возможности...
так что нужно постараться написать так чтобы его не надо было настраивать!

может ты чтонибуть скажешь по этому поводу: http://forum.oszone.net/topic.cgi?fo...&topic=968

Guest 28-07-2004 12:58 213052

Если мучиться не хотишь и настраивать мож сделать так
$updir="img";
mkdir($img, 666);
и далее..


Время: 19:55.

Время: 19:55.
© OSzone.net 2001-