Страница 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