[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Сохранение файлов на сервер
Страницы: 1, 2
kostr
После переезда на новый сервер началось непонятное. У нас иногда бывает массовая загрузка файлов - они читаются из сети и записываются функцией php file_put_contents в определенную папку. На старом сервере все было нормально. На новом большая часть файлов пишется не туда. Они пишутся сначала одной папкой выше, потом еще одной, еще и так до корня.

Грубо говоря, если нужная папка home/sites/app/tmp, то часть файлов будет именно там и называться как надо,
еще часть - в папке home/sites/app с названиями tmp_01, tmp_02 ...
еще часть - в папке home/sites с названиями app_01, app_02 ...
еще часть - в папке home с названиями sites_01, sites_02 ...
и большая часть прямо в корне с названиями _01, _02 ... ho_01, ho_02 ... home_01, home_02 ...

Что это может быть? Какая-то настройка сервера неправильная?
Invis1ble
скорее проблема в коде, но ты его нам не показываешь

PS. давать права на запись серверу куда угодно - помогать потенциальному злоумышленнику

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

kostr
Сервер настраивала не я. Я вообще не умею.
На старом сервере код работал как надо, ничего подобного не было.
Invis1ble
Цитата (kostr @ 24.01.2016 - 13:00)
На старом сервере код работал как надо, ничего подобного не было.

это я уже понял, но это не значит, что настройка текущего сервера неправильная
показывай код file_put_contents

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

Миша
Как сказано выше, вероятно проблема в коде. Показывайте код, только тогда вам вероятно кто-то поможет.

А так можно только предположить: Ваш скрипт ломает путь, куда идёт запись, скорее всего путь записан в переменную (желательно в константу записать), потому как отваливается по одному каталогу, а названием файлов становится название каталогов.

_____________
Принимаю заказы, писать в ЛС
kostr
Ну вот код:

if (stripos ($url, 'http://' ) !== 0) {
$url = 'http://'.$url;
|

$fileName = basename($url);
$fileName = strtolower($fileName);
$n = strrpos($fileName, '?');
if ($n) $fileName = substr($fileName, 0, $n);

$n = strrpos($fileName, '.');
if (!$n) return false;
$ext = substr($fileName, $n);
if ($ext == '.php') $ext = '.txt';

$tmp_dir = 'tmp';
$fileName = $_SERVER['DOCUMENT_ROOT'].$tmp_dir.'/'.$fileName;

$file = file_get_contents($url);
if (!$file) return false;
file_put_contents($fileName, $file);
if (file_exists($fileName))
return $fileName;
return false;
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.