Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Темповая директория


Автор: Kirill Baranov 14.4.2005, 20:42
Здравствуйте! Я вот сделал загрузку картинок на сайт, но иногда бывают какие-то сбои что ли - файл сохраняется, сбоев нет, но фишка в том, что при просмотре страницы, где отображается картинка, вылезает лишь рамка картинки с крестиком (нету ее), смотрю свойства картинки, а там такой вот ужас smile : "tmp/phpJMaF07"... что это такое и с чем есть?! почему картинка копируется не с компа юзера прям куда мне надо на сервер, а куда-то во временную папку. Что это такое?! smile

Автор: InfMag 14.4.2005, 20:47
Kirill Baranov
Ух-ты! Я такого еще не видел.
Вот тоже собирался прям седня сделать тоже самое, теперь боюсь встретиться с тем же. smile

Автор: Mont 14.4.2005, 20:49
Цитата
Файлы будут по умолчанию сохраняться во временной директории по умолчанию на сервере, если только не задано другое место директивой upload_tmp_dir в php.ini. Директория по умолчанию сервера может быть изменена через установку переменной окружения TMPDIR в среде, в которой работает PHP.

соответственно их оттуда надо перенести или скопировать при этом временный файл удаляется, если этого не сделать, то файл так и останется в темповой директории и с темповым именем, что по всей видимости и происходит...

Автор: Sardar 14.4.2005, 20:52
Загруженная картинка копируется сервером в темповую директорию, то туда ты должен файл забрать. Простой пример:
Код
if(isset($_FILES["myimage"])&& trim($_FILES["myimage"]["name"])!="") {
  $inm=preg_replace( "/[^a-zA-Z0-9\-\_\.]/", "" , basename($_FILES["myimage"]["name"])); //убрерём левые символы из имени, кстати русские буквы тоже
  if(file_exists($config['images_dir'].$inm)) { //придётся генерить уникальное имя
     $i=0;
     while(file_exists("{$config['images_dir']}ident_{$i}_{$inm}")) $i++;
     $inm="ident_{$i}_{$inm}";
  }
  move_uploaded_file($_FILES["myimage"]["tmp_name"], $config['images_dir'].$inm); //забрали файл
}

//а имя {$inm} нужно сохранить


Покажи код.

Автор: Mal Hack 14.4.2005, 20:59
Чтобы сразу снять пару вопросов: http://ru2.php.net/manual/en/function.move-uploaded-file.php

Автор: Kirill Baranov 14.4.2005, 22:17
тока вот что непонятно: почему иногда копируется файл нормально, а иногда прям вообще не хочет...

Автор: Kirill Baranov 15.4.2005, 22:39
Sardar
Скрипт попробовал, клевый, только непонятно что за $config['images_dir'], откуда она берется, как ее изменить?!

Автор: Sardar 16.4.2005, 01:35
Цитата(Kirill @ 15.4.2005, 21:39)
непонятно что за $config['images_dir'], откуда она берется, как ее изменить?!

Э... а я думал ясно, что это конфиг smile Другими словами путь куда сохраняем картинки. Просто привык, всё что может меняться, должно меняться smile

Автор: Kirill Baranov 16.4.2005, 13:06
Тогда еще один вопрос:
Я хочу сделать 2 копии графического файла, но при ф-ции:
move_uploaded_file($_FILES["myimage"]["tmp_name"], $config['images_dir'].$inm); //забрали файл

файл перемещается в папку, указанную в конфиге, а вот как сделать, чтобы одновременно файл перемещался в 2 разные папки?!

Просто у меня потом идет обработчик графики, делающей размер картинки определенный. в одной папке размер остается оригинальным, а во второй уменьшается до нужных мне размеров... так как скопировать одновременно в 2 папки?!

Автор: Kirill Baranov 16.4.2005, 13:39
извините за ламерский вопрос, спал мало... все решено

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)