При загрузке файла из браузера появляется сообщение файл загружен, но в каталоге его нет

Уведомление администрации о проблемах с хостингом ZZZ.COM.UA (www, ftp, почта, панель управления и т.п.).

Повідомлення адміністрації про проблеми з хостингом ZZZ.COM.UA (www, ftp, пошта, панель управління і т.п.).
Ответить
informschool
Сообщения: 4
Зарегистрирован: Сб янв 21, 2017 7:28 pm
Пол: Не указан
Агент пользователя: Chrome Windows 1440x900

При загрузке файла из браузера появляется сообщение файл загружен, но в каталоге его нет

Сообщение informschool »

Загрузка из формы

<form action="{{x}}" method="post" enctype="multipart/form-data">
<input type="file" name="filename"><br>
<input type="submit" value="Загрузить"><br>
</form>

В файле php

<?php
require_once('config.php');
session_start();
if(isset($_SESSION['username']))
{
if(is_uploaded_file($_FILES["filename"]["tmp_name"]))
{
echo "Файл ". $_FILES['userfile']['name'] ." успешно загружен.\n";
echo "Отображаем содержимое\n";
readfile($_FILES['userfile']['tmp_name']);
}
else
{
$er=$_FILES['filename']['error'];
}
$tpl_vars = array(
'er'=>$_FILES['filename']['error'],
'x'=>$_SERVER['PHP_SELF']);
$tpl_file = 'upload.tmpl';
require_once(DIR_ROOT.'tpl_config.php');
Аватара пользователя
vozduch
Сообщения: 795
Зарегистрирован: Пт янв 08, 2016 11:47 am
Пол: Женщина
Агент пользователя: Chrome Linux 1366x768

При загрузке файла из браузера появляется сообщение файл загружен, но в каталоге его нет

Сообщение vozduch »

Здравствуйте,
какой размер загружаемого файла?
Всегда рада помочь,
Мира,
Служба поддержки ZZZ
Приєднуйтесь до нас на Facebook або vKontakte та отримуйте наші ексклюзивні пропозиції, а також будьте в курсі важливих подій і новин світу веб-хостингів!
informschool
Сообщения: 4
Зарегистрирован: Сб янв 21, 2017 7:28 pm
Пол: Не указан
Агент пользователя: Chrome Windows 1440x900

При загрузке файла из браузера появляется сообщение файл загружен, но в каталоге его нет

Сообщение informschool »

Добрый день.
Размер файла 96 Kb
scorphost
Сообщения: 39
Зарегистрирован: Ср окт 26, 2016 8:50 am
Пол: Мужчина
Агент пользователя: Firefox Linux 1173x939

При загрузке файла из браузера появляется сообщение файл загружен, но в каталоге его нет

Сообщение scorphost »

Здравствуйте,
если Вы используете для загрузки поле с именем filename, то массив для исходных данных всегда будет указывать на $_FILES["filename"]. У Вас по-началу все так и есть, но потом почему-то массив указывает на несуществующий ключ $_FILES['userfile']. Вот что приходит на скрипт после выполнения POST запроса:

Код: Выделить всё

Array
(
    $_FILES[filename] => Array
        (
            [name] => Screenshot_20161230_232121.png
            [type] => image/png
            [tmp_name] => /tmp/phpKJQvvw
            [error] => 0
            [size] => 136199
        )
)
Т.е. указание на $_FILES['userfile'] является ошибочным, везде надо использовать ключ filename
Для дополнительной обработки файлов Вы можете посмотреть пример из этой темы: viewtopic.php?f=11&t=1094
informschool
Сообщения: 4
Зарегистрирован: Сб янв 21, 2017 7:28 pm
Пол: Не указан
Агент пользователя: Chrome Windows 1366x768

При загрузке файла из браузера появляется сообщение файл загружен, но в каталоге его нет

Сообщение informschool »

Добрый день,
исправила ключ, появляется сообщение об успешной загрузке файла, отображается содержимое, но в папке tmp файл не появляется.
scorphost
Сообщения: 39
Зарегистрирован: Ср окт 26, 2016 8:50 am
Пол: Мужчина
Агент пользователя: Firefox Linux 1173x939

При загрузке файла из браузера появляется сообщение файл загружен, но в каталоге его нет

Сообщение scorphost »

У Вас остутствует механизм переноса файла из временной папки сервера в свою временную папку. Допустим, для папки tmp на Вашем сайте это может выглядеть так:

Код: Выделить всё

<?php
require_once('config.php');
session_start();
if(isset($_SESSION['username']))
{
	if(is_uploaded_file($_FILES["filename"]["tmp_name"]))
	{
		$upload_dir = 'tmp/'; // или любая другая папка для хранения избражений
		$upload_file = $upload_dir. basename($_FILES['filename']['name']);
		if (copy($_FILES['filename']['tmp_name'], $upload_file))
		{
			echo "Файл успешно загружен на сервер";
		}
		else {
			echo "Ошибка! Не удалось загрузить файл на сервер!";
			die();
		}
		echo "Файл $upload_file успешно загружен.\n";
		echo "Отображаем содержимое\n";
		readfile($upload_file); 
	}
	else
	{
		$er = $_FILES['filename']['error'];
	}
	$tpl_vars = array(
		'er' => $_FILES['filename']['error'],
		'x' => $_SERVER['PHP_SELF'],
	);
	$tpl_file = 'upload.tmpl';
	require_once(DIR_ROOT.'tpl_config.php');
}
Проверьте, правильно ли мы расставили скобки. Они зависят от контекста. Возможно логику придется вынести за них. Не видно весь файл целиком и без отступов это сложно сразу определить.
informschool
Сообщения: 4
Зарегистрирован: Сб янв 21, 2017 7:28 pm
Пол: Не указан
Агент пользователя: Chrome Windows 1366x768

При загрузке файла из браузера появляется сообщение файл загружен, но в каталоге его нет

Сообщение informschool »

Добрый вечер,
большое спасибо за помощь, все заработало! :)
Ответить

Вернуться в «Поддержка клиентов ZZZ.COM.UA / Підтримка клієнтів ZZZ.COM.UA»