непредсказуемая функция copy() PHP
1.
CROWS (03.02.2011 / 22:52)
На локалке (Виндовс+ТопСервер) скрипт работает отлично. Всё копируется нормально.
А вот на сервере (Debian 5) не хочет. Копирует непонятно что и как. В результате в папке появляется файл с половиной имени, что должно быть, его нельзя удалить, нельзя переименовать.
Когда пытаюсь залить файл с полным именем, которое должно было скопироваться, то выдается также ошибка.
Подскажите, в чем может быть проблема?
При попытке залить нормальный файл:
Unexpected directory listing line ' Davies'.
Invalid rights description 'Davies'
Ну и сам код:
copy ($_SERVER[DOCUMENT_ROOT]."/img/p1/".$_POST['photo'], $_SERVER[DOCUMENT_ROOT]."/img/p2/".$rowx[2].".jpg") or die ("Ошибка копирования");
Добавлено через 01:29 сек.
$_POST['photo'] состоит из номера изображения. Например, 15.jpg.
$rowx[2] состоит из имени и фамилии. Например, Coco Chanelle.
2.
Nu3oN (03.02.2011 / 22:55)
copy($file,$dir.basename($name));
3.
CROWS (03.02.2011 / 22:58)
Nu3oN (3 Февраля 2011 / 22:55)
copy($file, basename($newfile));
Прочитай первое предложение.
4.
Nu3oN (03.02.2011 / 23:00)
<?php
$file = $_SERVER[DOCUMENT_ROOT].'/img/p1/'.$_POST['photo'];
$dir = $_SERVER[DOCUMENT_ROOT].'/img/p2/';
$name = 'file.jpg'
copy($file, $dir.basename($name));
?>
Пробуй а не оговаривайся
5.
CROWS (03.02.2011 / 23:03)
Nu3oN (3 Февраля 2011 / 23:00)
<?php
$file = $_SERVER[DOCUMENT_ROOT].'/img/p1/'.$_POST['photo'];
$dir = $_SERVER[DOCUMENT_ROOT].'/img/p2/';
$name = 'file.jpg'
copy($file, $dir.basename($name));
?>
Пробуй а не оговаривайся
Ок, попробую. Спасибо.
6.
Nu3oN (03.02.2011 / 23:04)
З.ы что бы удалить те файлы тебе теперь надо перезапустить сервер!
или обратится к администрации
7.
CROWS (03.02.2011 / 23:06)
Nu3oN (3 Февраля 2011 / 23:04)
З.ы что бы удалить те файлы тебе теперь надо перезапустить сервер!
или обратится к администрации
А почему они так записываются? Не знаешь?
8.
Nu3oN (03.02.2011 / 23:06)
если не получится юзай тогда move_uploaded_file()
Добавлено через 07:53 сек.
х.з! попробуй еще права доступа глянуть на файле который копируешь
Добавлено через 08:26 сек.
з.ы ты там если что отпишись помогло или нет!
9.
CROWS (03.02.2011 / 23:15)
От блин. Что-то опять на локалке работает этим способом, а на сервере по-прежнесу лагает.
10.
Владимир (03.02.2011 / 23:26)
Можно удалить эти файлы свободно, только через cPanel ну или что там у тебя. Короче через файловый менеджер панели хостинга. Если конечно такая имеется ;) так как все файлы скопированные или созданные средствами скрипта, становятся доступными только для сервера. Так что и удалять и менять права доступа нужно средствами скрипта.
11.
Nu3oN (03.02.2011 / 23:31)
поправочка! файлами как раз таки которые сгенерированны скриптом, можно управлять через php сценарий !
12.
Владимир (03.02.2011 / 23:49)
Nu3oN (3 Февраля 2011 / 23:31)
поправочка! файлами как раз таки которые сгенерированны скриптом, можно управлять через php сценарий !
ну я как раз об этом и говорю. Либо делать скрипт который будет удалять это, либо через файловый менеджер панели ;)
Добавлено через 01:18 сек.
Но через ФТП такими файлами управлять уже нельзя, так как прав нет. Даже права доступа не сменишь ;)
13.
Владислав (04.02.2011 / 00:35)
юзай exec('wget -O ' . dirname(__FILE__) . '/file.txt
http://site.ru/file.txt');
14.
Саня (04.02.2011 / 00:40)
12.
CHUMA, под рутом такие файлы тоже не удаляются?
15.
valakas (04.02.2011 / 03:25)
файлы созданные скриптом создаются с правами 666 владелец www-data т.е созданные апачем
16.
Марсель (04.02.2011 / 03:35)
Не все так создаются)
17.
Владимир (04.02.2011 / 05:37)
Santez (4 Февраля 2011 / 00:40)
12. CHUMA, под рутом такие файлы тоже не удаляются?
вот это я не знаю. В смысле под рутом, значит как админ сервера? Скорее всего тоже не получится. Так как уже написали что файлы создаются с правами доступа только для сервера - апач. Фиг его. Я не сильно в этом шарю
Добавлено через 08:09 сек.
ofroke (4 Февраля 2011 / 03:35)
Не все так создаются)
ну мне кажется, если во время создания файла, так же скриптом устанавливать права chmod, то будет всё норм. И тогда по фтп должно будет получаться ими управлять.
18.
CROWS (04.02.2011 / 07:19)
CHUMA (3 Февраля 2011 / 23:26)
Можно удалить эти файлы свободно, только через cPanel ну или что там у тебя. Короче через файловый менеджер панели хостинга. Если конечно такая имеется ;) так как все файлы скопированные или созданные средствами скрипта, становятся доступными только для сервера. Так что и удалять и менять права доступа нужно средствами скрипта.
ISPM не удаляет.
Добавлено через 01:57 сек.
ByVlad (4 Февраля 2011 / 00:35)
юзай exec('wget -O ' . dirname(__FILE__) . '/file.txt http://site.ru/file.txt');
Знаю, как через exec, но он у меня не используется в целях без-ти. Не хочу функцию вновь разрешать на выполнение.
Добавлено через 03:51 сек.
Возможно, проблема в файловой системе юникса и вот в этом пробеле в названии файла...
19.
Б.В. (04.02.2011 / 08:06)
Под рутом удаляется все, что хочешь.
Такая тема получается именного из-за того, что апач создает файл, чтоб другим пользователям его можно было изменять - надо ставить соответсвующие права самим скриптом.
Чтоб файл создавался от имени пользователя, а не апача, надо юзать php + cgi - читал об этом, но не вникал, так что тут советов конкретных не дам.
20.
ктулху (04.02.2011 / 10:31)
Эммм.... вообще вся проблема в том что ТС незнает элементарных стандартов. Ненадо использовать пробелы в имени файла.
21.
Андрей (04.02.2011 / 10:46)
Гы) и реально, надо было 1 пост дочитать)
22.
CROWS (04.02.2011 / 14:32)
ShiftBHT_есть_чо7 (4 Февраля 2011 / 10:31)
Эммм.... вообще вся проблема в том что ТС незнает элементарных стандартов. Ненадо использовать пробелы в имени файла.
Да ты что? Видать, очень умный человек. Мне со своим %20 вместо проблеа не до тебя
Пойду учить элементарные стандарты ГГ
жесть
23.
ктулху (04.02.2011 / 15:11)
Причём тут %20? это только в URL катит.
Есть такая тема что ФС тоже имеет кодировку. Как у тебя настроено никто незнает, поэтому настоятельно рекомендуется использовать файлы без пробелов и только с английскими названиями.
24.
CROWS (04.02.2011 / 15:19)
ShiftBHT_есть_чо7 (4 Февраля 2011 / 15:11)
это только в URL катит.
Как раз-то не только в url. / Пока что пробелы нужны и нужно как-то решить проблему. Позже буду переделывать. / Всем спасибо за внимание. Что-то придумаю сам.
URL:
https://visavi.net/topics/18492