PDA

Показать полную графическую версию : Аплоад файлов на сервер из пхп


Vlad Drakula
05-06-2004, 18:28
вот понадобилось написать маленький файл менеджер на пхп.
все написал но вот аплоад не работает.


<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
enctype быть может, а не encoding в форме для загрузки файла.

Vlad Drakula
06-06-2004, 08:04
Prisoner
спасибо!

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

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

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
mar
этот скрипт я пишу для чайников...
чтобы они могли его просто положить и рабоваться жизни...

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

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

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




© OSzone.net 2001-2012