powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Загрузка файла на сервер
21 сообщений из 21, страница 1 из 1
Загрузка файла на сервер
    #32355863
Фотография Zeta
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Помогите разобраться, плз!
Я пытаюсь забрать файл на сервер в директорию images и переименовать его. Я пишу так:
if (!is_uploaded_file($img))
{
echo "Файл не загружен";
exit;
}
$dirname="../images/";
$newfile=tempnam($dirname,pic);
rename($img,$newfile);
$img = $dirname.$newfile;
if (!copy($newfile, $img))
{
echo "Файл не загружен";
exit;
}
А комп мне выдает:
Warning: rename(/tmp\php74.tmp,C:\temp\pic75.tmp) [function.rename]: File exists in s:\home\nastya\www\admin\actions.php on line 88

Warning: copy(../images/C:\temp\pic75.tmp) [function.copy]: failed to create stream: Invalid argument in s:\home\nastya\www\admin\actions.php on line 90
Файл не загружен
Это я что-то не так делаю, или в настройках что-то не то? Помогите, плз!
...
Рейтинг: 0 / 0
Загрузка файла на сервер
    #32355892
Макс М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не надо rename, просто при копировании новое имя укажи:
move_uploaded_file($img, $dirname.$newfile);
только с переменной $newfile определись. Ее объявить как-то надо
...
Рейтинг: 0 / 0
Загрузка файла на сервер
    #32355903
Фотография Zeta
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
$dirname="../images/";
$newfile=tempnam($dirname,pic);
Я такой этот пример передрала из книги. Написано, что tempnam создает уникальное имя файла.
Это что, неправильно?

И че он мне выдает copy(../images/C:\temp\pic75.tmp) [function.copy], ксли адрес должен быть E:/webserv.... и т.д.?
...
Рейтинг: 0 / 0
Загрузка файла на сервер
    #32355926
Шогал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tempnam - плохая команда... В безопасном режиме ее вообще не удается использовать, в обычном она называет файлы как-то очень странно... Лучше уж в качестве имени файла используй текущее время time() и для безопасности прицепить к нему небольшой random()

Например, (time()%100000).random(100,999) задаст имя файла длиной в 8 символов, пять из которых будут пятерьмя последними цифрами суммы секунд, прошедших с начала эпохи Юникс, а последние три цифры произвольны (чтобы не дай бог не совпалось).

SHOGAL
...
Рейтинг: 0 / 0
Загрузка файла на сервер
    #32356006
Макс М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zeta
а зачем тебе такое уникальное имя файла ?
...
Рейтинг: 0 / 0
Загрузка файла на сервер
    #32361248
Фотография Zeta
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, народ! Но вы так и не ответили на главный вопрос: почему комп ищет каталог, в который я хочу записать файл, ,ваще не там, где надо?
Макс М. как тебе объяснить? Просто нужно....
...
Рейтинг: 0 / 0
Загрузка файла на сервер
    #32361280
Макс М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
первый Warning , насколько я понимаю, из-за того что tempnam() не только возвращает временное уникальное имя, но и создает файл с таким именем. Соответственно rename не срабатывает, так как файл $newfile - существует.
Может удалять его перед renname() ?
Код: plaintext
1.
$newfile=tempnam($dirname,pic); 
rename($img,$newfile);


Насчет пути - я не знаю, что ты имела ввиду, когда писала:
Код: plaintext
1.
2.
3.
$dirname= "../images/" ; /
$newfile=tempnam($dirname,pic); 
...
$img = $dirname.$newfile; // << ?????? 
но это явно неправильно. Возможно тебе надо
$img = $dirname.basename($newfile);
...
Рейтинг: 0 / 0
Загрузка файла на сервер
    #32361285
Макс М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в первом примере я имел ввиду:
Код: plaintext
1.
2.
$newfile=tempnam($dirname,pic); 
unlink($newfile);
rename($img,$newfile);
...
Рейтинг: 0 / 0
Загрузка файла на сервер
    #32361311
Фотография Zeta
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин! Да я, честно говоря, сама не пойму! Вот ковыряюсь тут и ничего не выходит.
$dirname="../images/";
$newfile=tempnam($dirname,pic);
...
$img = $dirname.$newfile;
Этот пример я выдрала из книжки. Как сказать компу, в какой каталог записать файл? Он создает уникальное имя файла, переименовывает его, а в нужный каталог писать не хочет а пишет:(C:\temp\pic75.tmp) или при указании $dirname ищет его:
(../images/C:\temp\pic75.tmp)
Ну лядно, попробую пока предложенный тобой варианты.
...
Рейтинг: 0 / 0
Загрузка файла на сервер
    #32361473
Макс М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
думаю твою задачу можно решить попроще. Примерно так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
if (!is_uploaded_file($img))
{ 
echo  "Файл не загружен" ; 
exit; 
} 
$dirname= "../images/" ; 
$newfile=tempnam($dirname,'pic'); 
if (!move_uploaded_file($img, $newfile)) 
{ 
echo  "Файл не загружен" ; 
exit; 
}
...
Рейтинг: 0 / 0
Загрузка файла на сервер
    #32362533
vovan1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
$dirname="../images/";

У тебя наверное нет прав на запись в директорию images.
...
Рейтинг: 0 / 0
Загрузка файла на сервер
    #32362599
Чувак!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Зеточка, что за книжка у тебя про которую ты все время упоминаешь? :-)
...
Рейтинг: 0 / 0
Загрузка файла на сервер
    #32363053
Фотография ©Felix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Макс
а что такое is_uploaded_file и move_uploaded_file честно говоря впервые вижу... я обычно copy использую...

2Zeta
то что он пишет не туда то ет зависит насколько я понял от настроек сисемы.. после создания сделай
Код: plaintext
1.
2.
$path= = "../images/" ; 
$file= basename($newfile); 
copy ($newfile, $path.$file);
Felix
...
Рейтинг: 0 / 0
Загрузка файла на сервер
    #32363074
Фотография ©Felix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Макс, .... вопрос снят :))
Felix
...
Рейтинг: 0 / 0
Загрузка файла на сервер
    #32363156
Макс М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кстати, действительно, Zeta, а что у тебя за книга ?
...
Рейтинг: 0 / 0
Загрузка файла на сервер
    #32364907
Шогал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кажется, я понял в чем большинство проблем, связанных с temfile. Он начинает отсчитывать директорию не от запроса, а от корня... По крайней мере на моей машине именно так ;(

SHOGAL
...
Рейтинг: 0 / 0
Загрузка файла на сервер
    #32367327
Фотография Zeta
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Народ, а фиг знает, че за книга! Просто муть какая-то. Вы б помогли мне б, как из этой ситуации выйти???....
...
Рейтинг: 0 / 0
Загрузка файла на сервер
    #32387286
Фотография Человек
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Народ я уже тоже второй день туплю на эту тему..
не понимаю. на локальном всё работает клёво супер. а как загружаю скрипт в инет так глюки...

Передаю из формы $filename
Пишу вот так:
Код: plaintext
1.
copy ($filename, "photo/$id" );


на что он мне отвечает:
Warning: copy(C:\\HOME\\359005_1.jpg): failed to open stream: No such file or directory in /home/user3/public_html/index.php on line 291

В чём проблема тут? может кто подскажет или просто покажет готовый скрипт закачки файлов?
спасибо большое.
...
Рейтинг: 0 / 0
Загрузка файла на сервер
    #32387837
Макс М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
для начала прочти статью на http://detail.phpclub.net/ про аплоад файлов.
...
Рейтинг: 0 / 0
Загрузка файла на сервер
    #32387987
Фотография Человек
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну понятно.
в общем вся эта ветка сообщений могла бы закончиться на втором же сообщение как уважаемая Zeta спросила.......
...
Рейтинг: 0 / 0
Загрузка файла на сервер
    #32388145
Фотография Человек
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Макс М. Но ты мне чел реально помог - спасибо . Всё не так сложно оказывается! :)
осталось разобраться с права доступа.
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Загрузка файла на сервер
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]