Закачка файла методом POST на WAMPSERVERE

  • Автор темы Автор темы Las
  • Дата начала Дата начала

Las

Новичок
Здравствуйте! Помогите пожалуйста с методом POST на WAMPSERVERE, речь идет о закачке файла.
Вот html форма:
<form enctype="multipart/form-data" name="ufile" action="upload.php" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="50000" />
<input name="ufile" type="file" />
<input type="submit" value="Загрузить" />
</form>
Она работает и позволяет выбрать фотку. Но в скрипте обработки я получаю такую информацию через phpinfo():
_FILES["userfile"]
[name] => Las.jpg - это оригинальное название фотки
[type] => image/jpeg
[tmp_name] => С:\wamp\tmp\php8B15.tmp
[error] => 0
[size] => 8652

Казалось бы, все хорошо, ошибок нет, файл закачан. Но в папке C:\\wamp\tmp, куда он должен временно размещаться с

временным именем php8B15.tmp его НЕТ! Короче, файл не закачивается или не записывается в эту папку.
Там только сессии. Я останавливал скрипт до перемещения временного файла и такая картина.
В свойствах папки стоит флажок "Только чтение" и изменить его не удается. Впрочем, такие флажки почти на

всех папках и все туда прекрасно пишется. Например, пишутся же в C:\\wamp\tmp сессии. А закачиваемый файл - нет.
Я пытаюсь закачать на локальный сервер файл с моего же компьютера и ничего не получается.
Причем вручную он в эту папку прекрасно записывается и удаляется. В чем дело, кто знает, помогите!
Спасибо.
 
а зачем тебе смотреть на временный файл? скрипт обычно выполняется доли секунды, конечно ты не заметишь как за это время файл создастся и удалится
делай move_uploaded_file после закачки и всё
 
А файл что, удаляется до перемещения? Я смотрел до перемещения. Делал и move_uploaded_file, но в нужной папке он не появился. А функция is_uploaded_file выдает false.
 
<?php
// инициализируем нужные переменные
$filename = 'НЕ загружен';
$filepath = '';
$filetype = '';

// проверяем, что файл загружался
phpinfo(32);
if ($_FILES['ufile']['error'] == 0)
// проверяем, что файл загрузился без ошибок
// { if($_FILES['ufile']['error'] != 1 &&
// $_FILES['ufile']['error'] != 0)
// { $error = $_FILES['ufile']['error'];
// $errors []= 'Ошибка: Файл не загружен.'.
// ' Код ошибки: ' . $error;
// }
// else
// {
// файл загружен на сервер

// проверяем файл на максимальный размер
// $filesize = $_FILES['ufile']['size'];
// if($_FILES['ufile']['error'] == 1 ||
// $filesize > 3145728)
// {
// $filesize = ($filesize != 0)?
// sprintf('(%.2f Мб)' , $filesize / 1024): '';
// die('Ошибка: Размер прикреплённого файла '.
// $filesize.' больше допустимого (3 Мб).');
// }
// else {
echo 'Ошибок нет'.$_FILES['ufile']['tmp_name'];
{ $filename = $_FILES['ufile']['name'];
$filepath = $_FILES['ufile']['tmp_name'];
$filetype = $_FILES['ufile']['type'];
// if($this->filetype == null ||
// $this->filetype == '')
// $this->filetype = 'unknown/unknown';
// }
// }
// }

echo 'Успешно загружен файл: ' . $filepath;
};// else { echo 'Ошибка:'.$_FILES['ufile']['error']; exit;};
// $filename - имя загруженого файла
// echo 'Загружаем файл в каталог';
if(is_uploaded_file($filepath)) echo 'Есть файл'.$filepath; else echo 'НЕТ файла'.$filepath;
// move_uploaded_file($filepatch,'katalog/'.basename($filename));
// файл будет перемещён в каталог/
?>
 
Думаешь это кто-то будет читать тут?
 
А что там читать, там все закомментирвано. Единственное интересное место в конце: if(is_uploaded_file($filepath)) echo 'Есть файл'.$filepath; else echo 'НЕТ файла'.$filepath;
// move_uploaded_file закомментировано и не выполняется. А if(is_uploaded_file($filepath)) выдает: "НЕТ файла", т.е. false/

Но кажется я нашел решение вот только сейчас вспомнил, что метод ПОСТ не работает при ненастроенном почтовом клиенте. Только что настроил какой есть в Вин7 и ВПЕРВЫЕ скрипт выдал "Есть файл", но в папке wamp\tmp его все равно нет. Ничего не пойму.
Буду экспериментировать дальше.
 
обнови свой код тогда, читать без подсветки лично я не буду, и почтовики тут не при чем вообще.
 
PHP:
<?php
// инициализируем нужные переменные
  $filename = 'НЕ загружен';
  $filepath = '';
  $filetype = '';
 
  // проверяем, что файл загружался
  phpinfo(32);
  if ($_FILES['ufile']['error'] == 0)
    // проверяем, что файл загрузился без ошибок
//  {	if($_FILES['ufile']['error'] != 1 &&
//        $_FILES['ufile']['error'] != 0)
//	{  $error = $_FILES['ufile']['error'];
//	  $errors []= 'Ошибка: Файл не загружен.'.
//                    ' Код ошибки: ' . $error;
//	}
//	else
//    {
      // файл загружен на сервер

      // проверяем файл на максимальный размер
//	  $filesize = $_FILES['ufile']['size'];
//	  if($_FILES['ufile']['error'] == 1 ||
//            $filesize > 3145728)
//	  {
//	   	$filesize = ($filesize != 0)?
//            sprintf('(%.2f Мб)' , $filesize / 1024): '';
//	   	die('Ошибка: Размер прикреплённого файла '.
//            $filesize.' больше допустимого (3 Мб).');
//	  }
//	  else  {
	  		echo 'Ошибок нет'.$_FILES['ufile']['tmp_name'];
	{    $filename = $_FILES['ufile']['name'];
	   	$filepath = $_FILES['ufile']['tmp_name'];
	   	$filetype = $_FILES['ufile']['type'];
//	   	if($this->filetype == null ||
//           $this->filetype == '')
//	   	  $this->filetype = 'unknown/unknown';
//	}
//	}
//  }

		echo 'Успешно загружен файл: ' . $filepath;
	};// else { echo 'Ошибка:'.$_FILES['ufile']['error']; exit;};
    // $filename - имя загруженого файла
//	echo 'Загружаем файл в каталог';
    if(is_uploaded_file($filepath)) echo 'Есть файл'.$filepath; else echo 'НЕТ файла'.$filepath;
//        move_uploaded_file($filepatch,'katalog/'.basename($filename));
    // файл будет перемещён в каталог/
?>]
 
А как его подсветить, я не знаю ваш редактор. Нажал "PHP", а получилось то же самое - без подсветки.
 
Ой брееед, ты сам-то в своих комментариях не путаешься? Пока что я вижу "поток сознания", а не осознанную программу на php. Иди по ссылке, что дал baev
 
Спасибо всем, распутался. Проблема решена. А поток сознания приводит к осознанию.
 
Сверху