Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> закачка файла 
:(
    Опции темы
blackbanny
Дата 22.5.2013, 07:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 83
Регистрация: 18.11.2009

Репутация: нет
Всего: нет



Доброго времени  суток!
написал код для закачки файлов на сервер. move_uploaded_file возвращает true, но файла нет в папке:
Код

$desc = $_POST['desc'];
$file = $_FILES['userfile']['name'];

echo $file . "<br>";
echo $_FILES['userfile']['tmp_name'] . "<br>";

$uploadfile = $_POST['file_path'] . basename($file);
echo $uploadfile . "<br>";;
print_r($_FILES);
echo "<br>";
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
    echo "yes.\n";
} else {
    echo "no!\n";
}

вывод на странице:


file.docx
/tmp/php8c1I8e
/home/bh46714/public_html/no_file/file.docx
Array ( [userfile] => Array ( [name] => file.docx [type] => application/vnd.openxmlformats-officedocument.wordprocessingml.document [tmp_name] => /tmp/php8c1I8e [error] => 0 [size] => 0 ) ) 
yes. 



PM MAIL   Вверх
ksnk
Дата 22.5.2013, 07:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



Так не бывает. 
Единственное разумное объяснение, которое мне пришло в голову - файл на лету пристреливается какой-нибудь особенно хитрой антивирусной защитой. Хитрость ее в то, что она проверяет файл не в момент его размещения во временной папке, а в момент его копирования в ...public_html/no_file. Чтобы полностью исключить этот вариант - загрузи простой текстовый файл с расширением txt

Второе относительно разумное объяснение - файл таки скопировался, но прав на его просмотр нету. Каким образом проверяется наличие файла?


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
blackbanny
Дата 22.5.2013, 07:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 83
Регистрация: 18.11.2009

Репутация: нет
Всего: нет



Цитата(ksnk @ 22.5.2013,  07:18)
Так не бывает. 
Единственное разумное объяснение, которое мне пришло в голову - файл на лету пристреливается какой-нибудь особенно хитрой антивирусной защитой. Хитрость ее в то, что она проверяет файл не в момент его размещения во временной папке, а в момент его копирования в ...public_html/no_file. Чтобы полностью исключить этот вариант - загрузи простой текстовый файл с расширением txt

Второе относительно разумное объяснение - файл таки скопировался, но прав на его просмотр нету. Каким образом проверяется наличие файла?

попробовал txt:
DB.txt
/tmp/phpq5x6hV
/home/bh46714/public_html/no_file/DB.txt
Array ( [userfile] => Array ( [name] => DB.txt [type] => text/plain [tmp_name] => /tmp/phpq5x6hV [error] => 0 [size] => 81 ) ) 
yes. 

файла все равно нет, проверяю - захожу по фтп на хостинг
может из-за хостинга или cms MODx проблема?
PM MAIL   Вверх
ksnk
Дата 22.5.2013, 07:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



Можно после загрузки файла выполнить что-то такое отдельным скриптом
Код

<?php

echo file_exists('/home/bh46714/public_html/no_file/DB.txt')? 'file_exists': 'file no found';


Если скрипт найдет загруженный файл, то нужно будет поправить атрибуты у папки no_file.




--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
blackbanny
Дата 22.5.2013, 07:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 83
Регистрация: 18.11.2009

Репутация: нет
Всего: нет



ничего не вывел
PM MAIL   Вверх
ksnk
Дата 22.5.2013, 08:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



а так
Код

<?php
ini_set('display_errors',1);
error_reporting(E_ALL);
echo file_exists('/home/bh46714/public_html/no_file/DB.txt')? 'file_exists': 'file no found';


Предположительно, дело в атрибутах папки. У пользователя FTP нет прав на просмотр загруженного файла, вот его и не показывают.
У пользователя web (или от какого имени там запущен апач) нет прав на чтение файла. можно сохранить файл не в no_file (достаточно зловещее название для папки, не находите  smile ) а в корень сайта, для проверки.

Это сообщение отредактировал(а) ksnk - 22.5.2013, 08:15


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
blackbanny
Дата 22.5.2013, 08:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 83
Регистрация: 18.11.2009

Репутация: нет
Всего: нет



так то зловеще хД
все равно ничего не выводит, если в корень сохранять: $uploadfile="/";
то:
Warning: move_uploaded_file() [function.move-uploaded-file]: open_basedir restriction in effect. File(/) is not within the allowed path(s): (/home/bh46714:/usr/lib/php:/usr/local/lib/php:/tmp) in /home/bh46714/public_html/add_file.php on line 13
PM MAIL   Вверх
blackbanny
Дата 22.5.2013, 08:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 83
Регистрация: 18.11.2009

Репутация: нет
Всего: нет



ситуация следующая...скрипт работает и с таким кодом:
Код

$desc = $_POST['desc'];
$file = $_FILES['userfile']['name'];

echo $file . "<br>";
echo $_FILES['userfile']['tmp_name'] . "<br>";

$uploadfile = $_POST['file_path'] . $file;

echo $uploadfile . "<br>";
print_r($_FILES);
echo "<br>";
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) { 
    echo "yes.\n";
} else {
    echo "no!\n";
}

но по фтп файлов не видно(TC), взял закинул через фтп файл, он отобразился один в папке, потом беру удаляю его(F8), TC обновляют папку и появляется список всех файлов, которые я пытался загрузить с помощью скрипта smile

Добавлено через 6 минут и 6 секунд
только вот скачать нельзя, если по этой ссылке перехожу то ошибка 404
PM MAIL   Вверх
Sanchezzz
Дата 22.5.2013, 09:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1670
Регистрация: 19.11.2006
Где: Voronezh

Репутация: 41
Всего: 60



В ТС листинг файлов кешится для принудительного обновления нужно жать как в браузере ctrl+r


--------------------
Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS.
PM MAIL Skype GTalk   Вверх
ksnk
Дата 22.5.2013, 09:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



Цитата(blackbanny @  22.5.2013,  08:39 Найти цитируемый пост)
 TC обновляют папку и появляется список всех файлов, которые я пытался загрузить с помощью скрипта
 Можно пользоваться каким-нибудь online-файловым менеджером для отладки. Он отображают информацию так как видит ее скрипт. Если ftp ходит как web броузер и через прокси - список файлов где-то по пути может закэшироваться и не обновляться.


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0523 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.