Страница 1 из 1

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

Добавлено: Вс апр 16, 2017 11:55 am
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');

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

Добавлено: Вс апр 16, 2017 12:19 pm
vozduch
Здравствуйте,
какой размер загружаемого файла?
Всегда рада помочь,
Мира,
Служба поддержки ZZZ

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

Добавлено: Вс апр 16, 2017 12:32 pm
informschool
Добрый день.
Размер файла 96 Kb

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

Добавлено: Пн апр 17, 2017 8:54 am
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

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

Добавлено: Пн апр 17, 2017 1:57 pm
informschool
Добрый день,
исправила ключ, появляется сообщение об успешной загрузке файла, отображается содержимое, но в папке tmp файл не появляется.

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

Добавлено: Пн апр 17, 2017 3:22 pm
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');
}
Проверьте, правильно ли мы расставили скобки. Они зависят от контекста. Возможно логику придется вынести за них. Не видно весь файл целиком и без отступов это сложно сразу определить.

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

Добавлено: Пн апр 17, 2017 4:21 pm
informschool
Добрый вечер,
большое спасибо за помощь, все заработало! :)

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

Добавлено: Вт мар 21, 2023 7:17 am
Helenwatcher