move_uploaded_file под Windows

_Dimas2003_

Новичок
move_uploaded_file под Windows

move_uploaded_file ( $src, $dst );

отказался работать под Windows, причем при E_ALL ни сообщает никакой проблемы, но функция возвращает false.

но copy ( $src, $dst ) работает без проблем.


как сделать, чтоб move_uploaded_file () работало?

Apache/2.0.55 (Win32) PHP/4.4.2
 

ZN

Новичок
$src - это точно файл, загруженный на сервер?
а вообще так как задача простая, то и скрипт, наверное, небольшой, поэтому приведите его
 

_Dimas2003_

Новичок
скрипт, к сожалению, великоват (с множеством include)...

а вот и участок кода:
PHP:
switch ( $action ) {
    case 'post':
        $uploaded_file = $request->get ( 'uploaded_photo', null, REQUEST_FILE );
        
        if ( $uploaded_file && isset ( $uploaded_file->tempName ) ) {
            $image_info = getimagesize( $uploaded_file->tempName );
            
            if ( $image_info[2] == 2 ) { // JPEG
                $filename = $storage->generateUniqueFileName( 'jpg' );
                move_uploaded_file ( $uploaded_file->tempName, $storage->realfilename );
                $submit_ad_uploaded_photos[] = $filename;
                $session->put ( 'uploaded_photos', $submit_ad_uploaded_photos );
            }
            
        }
        PaClient::redirect( $conf ['nonsecure_url'] . urlencode( $showing_location->urldecoded_name ) . '/submit_ad.htm' );
        
        break;

    case 'delete':
файл загружается нормально, это следовало из того, что
$image_info = getimagesize( $uploaded_file->tempName );
было "правильным": в $image_info содержался правильный массив.

причем если move_uploaded_file заменить copy, всё работает!
 

alekciy

Новичок
_Dimas2003_
А чем обусловлен upload файла и работа с ним не через $_FILES?
 

_Dimas2003_

Новичок
alekciy
наличием Framework`a

господа, давайте по теме.

проблема судя по всему в том, что move_uploaded_file почему-то не правильно отрабатывает под Windows, поскольку на других серверах под Linux этот код работает как полагается

а под Windows мне приходилось заменить move_uploaded_file на copy и unlink, чтобы код заработал (и он-таки заработал)

так что же не так с move_uploaded_file ?
или я в чем-то заблуждаюсь?
 

ZN

Новичок
а is_uploaded_file() что возвращает?
и вы пробовали сделать то же самое без вашего фреймворка (просто загрузить файл и сделать move_uploaded_file() )?
 

Dreammaker

***=Ф=***
С move_uploaded_file() были проблемы в пхп, но к 4.4.2 их пофиксили. По крайней мере, у меня излечилось обновлением до 4.4.2 (апач1)

Возможно, проблема осталась для апач2. Попробуй поставить снапшот с snaps.php.net

Но прежде попробуй просто загрузить файл без фреймворка, как уже выше посоветовали. Возможно проблема, где-то в нём..
 
Сверху