Виртуальный сервер, сбой в работе скрипта загрузки файлов через форму

Рейтинг: 0Ответов: 1Опубликовано: 09.02.2015

Здравствуйте!

Тут возникла проблема с двумя виртуальными серверами - это с OpenServer и denwer. Сначала я пробовал скрипт из учебника Прохоренок Н.А. - HTML, JavaScript, PHP и MySQL. Джентльменский набор Web-мастера (Профессиональное программирование) - 2010 на стр. 566, скрипт испытывал на denvwer, вот сам скрипт:

Листинг 5.48. Содержимое файла file_load.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Загрузка файлов</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-
1251">
</head>
<body>
<h1>Загрузка файлов</h1>
<form action="file.php" method="POST" enctype="multipart/form-data">
<div>
<input type="file" name="file_name" size="20">
<input type="submit" value="Загрузить">
</div>
</form>
</body>
</html>

Это форма, которая должна обратиться к следующему листенгу:

Далее создаем файл file.php и добавляем в него код, представленный в лис-тинге 5.49. Основы PHP. Создаем динамические Web-страницы 567 Листинг 5.49. Содержимое файла file.php:

<?php
if (isset($_FILES['file_name'])) {
if ($_FILES['file_name']['error'] == 0 &&
$_FILES['file_name']['size'] > 0) {
$path = "C:\\Apache2\\htdocs\\";
$path .= basename($_FILES['file_name']['name']);
if (@move_uploaded_file($_FILES['file_name']['tmp_name'], $path)) {
echo 'Файл загружен';
}
else {
echo 'Ошибка при загрузке';
}
}
else echo 'Ошибка при загрузке';
}
?>

Всё бы ничего, но на обоих серверах даже на OpenServer

ошибка загрузки файла

Подскажите почему?

У меня у самого предположение: может, Apache нужно настраивать, или я что-то не включил на серверах? Побовал похожие скрипты в Интернете - та же ситуация, подскажите, помогите, что не так?

Ответы

▲ 2
$path = "C:\\Apache2\\htdocs\\";

Зачем указывать такие пути?

Почему не прописать от корня сайта папку?

 $path=(__DIR__).'/files';

Ну хотя бы так.

Обновление

echo 'Ошибка при загрузке';
}
}
else echo 'Ошибка при загрузке';

Какая именно ошибка?! Первая вторая... Ну зачем называть 2 разных выхода одинаково?

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

Назови ты их по-разному хоть.

Если

if ($_FILES['file_name']['error'] == 0 &&
$_FILES['file_name']['size'] > 0) {

то одна ошибка.

Если

if (@move_uploaded_file($_FILES['file_name']['tmp_name'], $path))

то другая...

Ошибки-то разные!