Проблема с перезаписью файла на сервере

kate

Новичок
Проблема с перезаписью файла на сервере

Почему-то не отрабатывают функции
PHP:
move_uploaded_file();
PHP:
copy();
Ошибок не выводит...

На Apach'e работает, а на IIS не хочет. Может IIS требует другой синтаксис путей...? Если да, подскажите какой..

Пишу вот такую функцию, но она не отрабатывает на IIS:
PHP:
if(move_uploaded_file($_FILES['file_r']['tmp_name'], $PathFile)){ echo "ok"; }
Задача в том, что необходимо загружать определённый файл с жёсткого диска на веб-сервер(через веб-интерфейс), в данном случае ИИС.
 

Фанат

oncle terrible
Команда форума
Может IIS требует другой синтаксис путей...?
Очень интересно. можно подумать, что мы видим здесь хоть какой-то "синтаксис путей", чтобы ответить на этот вопрос.
но она не отрабатывает на IIS:
говорит человеческим голосом "Не хочу работать, хочу жениться?"
 

kate

Новичок
$file_r="c:\documents and settings\user\рабочий стол\my_file.html";

$PathFile="http://www.site.ru/dir/my_file.html";

move_uploaded_file($file_r, $PathFile);

Ошибку не выдаёт и не перезаписывает.(
 

Clubber

Новичок
Ну в последнем то случае понятно, из-за чего не работает:
This function checks to ensure that the file designated by filename is a valid upload file (meaning that it was uploaded via PHP's HTTP POST upload mechanism).
© [m]move_uploaded_file[/m]

-~{}~ 01.08.06 22:26:

между прочим, это следовало из названия функции.

И давай больше не будем приводить выдуманный код. А вместо этого распечатаем var_dump($_FILES);
 

Фанат

oncle terrible
Команда форума
как интересно.
девушка, вы хотите сказать, что с таким
$PathFile="http://www.site.ru/dir/my_file.html";
путём на апаче всё работает?
ладно, спишем на девичью рассеянность.
Читать здесь: PHP FAQ: Различие между абсолютными и относительными путями. В файловой системе и на сайте. и рисправлить скрипт в соответствии с полученными знаниями.
 

kate

Новичок
ок...
$file_r=strtolower($_POST['file_r']);

$PathFile=$_SERVER['DOCUMENT_ROOT']."/dir/my_file.html";
echo $file_r."<BR>";
echo $PathFile."<BR>";


if(move_uploaded_file($_FILES['file_r']['tmp_name'], $PathFile)){ echo "ok"; }
echo var_dump($_FILES['file_r']['tmp_name']);

выводит:
c:\documents and settings\user\рабочий стол\my_file.html
/dir/my_file.html
NULL

Почему нулл?
 

Фанат

oncle terrible
Команда форума
потому что форму загрузки файла надо по-человечески делать
как в мануале написано, а не с потолка брать
 

Clubber

Новичок
kate
еще раз тоже самое, но не
PHP:
echo var_dump($_FILES['file_r']['tmp_name']);
а
PHP:
var_dump($_FILES);
 

kate

Новичок
array(0) { }

<form method="post" action="update.php">
<input type="Hidden" name="action" value="post">
<input type="File" name="file_r" size="70"><br><br>
<div style="padding-left:180px;"><input type="Submit" value="Обновить"></div>
</form>
 

Фанат

oncle terrible
Команда форума
WP
какого ты лезешь? сбрыснул отсюда.

катичка.
я непонятно написал? мне повторить, откуда надо брать форму?
 

kate

Новичок
написала как в мануале..
$uploaddir = '/dir/';
$uploadfile = $uploaddir . basename($_FILES['file_r']['name']);

if (move_uploaded_file($_FILES['file_r']['tmp_name'], $uploadfile)) {
echo "File is valid, and was successfully uploaded.\n";
} else {
echo "Possible file upload attack!\n";
}
var_dump($_FILES);

выводит Possible file upload attack! array(0) { }

в форме дописала enctype="multipart/form-data"
 

Фанат

oncle terrible
Команда форума
Можно увидеть весь скрипт целиком?
без объяснений на пальцах "здесь я multipart вставила, а там селёдку заворачивала"?

-~{}~ 01.08.06 23:34:

и где именно это выводит? под ИИС или апачем?
 

kate

Новичок
Форма
_________________________________________

<form enctype="multipart/form-data" method="post" action="update.php">
<input type="Hidden" name="action" value="post">
<input type="File" name="file_r" size="70"><br><br>
<div style="padding-left:180px;"><input type="Submit" value="&#206;&#225;&#237;&#238;&#226;&#232;&#242;&#252;"></div>
</form>
_________________________________________


<?php
$action=$_POST["action"];
$file_r=stripslashes($_POST['file_r']);
$file_r=strtolower($file_r);

if(!empty($action)){

$uploaddir = '/dir/';
$uploadfile = $uploaddir . basename($_FILES['file_r']['name']);

if (move_uploaded_file($_FILES['file_r']['tmp_name'], $uploadfile)) {
echo "File is valid, and was successfully uploaded.\n";
} else {
echo "Possible file upload attack!\n";
}
var_dump($_FILES);
}
?>


Выводит:
Possible file upload attack! array(0) { }

под ИИС
 
Сверху