Непонятная работа file_exists

KolyaA

Новичок
Непонятная работа file_exists

PHP:
 if(getimagesize($_FILES[$poleImya]['tmp_name']))
      return 2;
    else
      return 1;
возвращает 2

PHP:
 if(file_exists($_FILES[$poleImya]['tmp_name']))
      return 2;
    else
      return 1;
возвращает 1

Почему такое может быть?
 

dimagolov

Новичок
KolyaA, сделай
PHP:
var_dump(getimagesize($_FILES[$poleImya]['tmp_name']));
-~{}~ 25.06.09 11:24:

блин, а ты одновременнт вызываешь getimagesize и file_exists?
 

KolyaA

Новичок
Нет не одновременно, а по очереди.


PHP:
var_dump(getimagesize($_FILES[$poleImya]['tmp_name']));


array(7) { [0]=> int(640) [1]=> int(630) [2]=> int(2) [3]=> string(24) "width="640" height="630"" ["bits"]=> int(8) ["channels"]=> int(3) ["mime"]=> string(10) "image/jpeg" }
PHP:
var_dump(file_exists($_FILES[$poleImya]['tmp_name']));


bool(false)
 

dimagolov

Новичок
Интересная тема. Это на хостинге? Может safe mode чудит?

Попробуй не дергать временный файл, а согласно ману делать move_uploaded_file.
 

KolyaA

Новичок
Нет свой комп.

Ман сегодня уже, наверное, не успею разобрать ....

Но загрузка у меня прекрасно работала, когда было так:

PHP:
  function uploadRisunok($risunokStolbezImya,$zapisId,$naibShirina = NULL, $naibVisota = NULL)
  {

    if(getimagesize($_FILES[$risunokStolbezImya]['tmp_name'])>0)
    {
      $explodedName = explode(".",basename($_FILES[$risunokStolbezImya]['name']));
      $rasshir = $explodedName[1];

      $razmer = getimagesize($_FILES[$risunokStolbezImya]['tmp_name']);
      $shirina = $razmer[0];
      $visota = $razmer[1];

      if((is_NULL($naibShirina) || $shirina<=$naibShirina)&&(is_NULL($naibDlina) || $dlina<=$naibDlina))
      {
        $insertedRisunokId = $this->insertRisunokIntoTables($rasshir,$risunokStolbezImya,$razmer,$zapisId);

        $uploaddir = $_SERVER['PATH_TRANSLATED'].'/public/design/ris/zagruz/';
        $uploadfile = $uploaddir.$insertedRisunokId.'.'.$rasshir;

        move_uploaded_file($_FILES[$risunokStolbezImya]['tmp_name'], $uploadfile);
      }
      else
        return NULL;
    }
    else
      return NULL;
  }
Но решил заменить

PHP:
    if(getimagesize($_FILES[$risunokStolbezImya]['tmp_name'])>0)
на

PHP:
    if(file_exists($_FILES[$risunokStolbezImya]['tmp_name']))
Однако file_exists почему-то выдаёт false.
 

KolyaA

Новичок
Потому что хочу переделать функцию под загрузку не только рисунков, но и pdf.

dimagolov

safe mode = OFF

-~{}~ 25.06.09 19:22:

Перегрузил комп, всё заработало правильно ....

Чудеса в решете ....
 

Активист

Активист
Команда форума
> Перегрузил комп, всё заработало правильно ....

Навеело
"Сидят четыре программиста в машине, машина глохнет, не зводится и тут один - А может выйти и зайти?" =)
 

KolyaA

Новичок
*****

Да это винда. Чтоб её разорвало. Сегодня опять работает неправильно. Похоже последствия недавней установки обновления ...

Активист

Но бывает же в самом деле помогает :)
 

Dreammaker

***=Ф=***
flie_exists может так глючить или фичить, не знаю как это назвать, если нет прав для доступа к файлу или же файл блокируется. Как вариант, может антивирус или что-то подобное работает с темп-файлом. Как версия.
 

KolyaA

Новичок
Dreammaker

Прописал отдельно права доступа для пользователя IIS на папку C:/windows/temp это помогло.

weregod

Ну, это у кого как ...
 

weregod

unserializer
KolyaA
1) опишите Вашу платформу в первом сообщении, очевидно, полезность топика возрастёт
2) uploadRisunok - имхо, но гораздо органичнее использовать название либо "uploadImage", либо "zagruzitRisunok" (и др. варианты), избегая каши в простом легче избежать её в сложном
 

KolyaA

Новичок
Платформа Windows 2003 Server, php 5.2, mysql 5.0, iis 6.0.
После установки Service Pack 2 на Windows возникли озвученные выше сложности. Решились добавлением прав на папку C:\Windows\Temp пользователям Internet Guest Account и Launch IIS Process Account.

...Хотя тех, кто тоже соберётся ставить SP2 на 2003 сервер, хочу предупредить, что это не единственная засада, котрая будет.
 

dimagolov

Новичок
KolyaA, а какой глубокий смысл в пользовании iis-ом? ждать когда в нем найдут очередную дыру и затроянят сервера?
 

dimagolov

Новичок
вот интересно. это "так надо" уже выливается в реальный downtime сайта и будет продолжать. то есть в попадание на реальное бабло. но тех, кому "так надо" похоже это совершенно не волнует.
 
Сверху