2013-07-08 4 views
0

У меня есть настройка php на IIS и попытка реализовать загрузку файлов в CakePHP.Файл не загружается в PHP

Я выполнил необходимые правила для загрузки файлов, но каждый раз, когда я загружаю, я продолжаю получать ниже с помощью uploadError. Что может быть неправильным, так как даже temp_name пуст.

Первоначально думали IIS не имеют права на запись во временную папку, но она не работает, даже после того, как получили полные права на IIS_IUSRS и IUSR

array(5) { 
    ["name"]=> 
    string(14) "DSC02474_2.JPG" 
    ["type"]=> 
    string(0) "" 
    ["tmp_name"]=> 
    string(0) "" 
    ["error"]=> 
    int(1) 
    ["size"]=> 
    int(0) 
}   

ФОРМА

<?php 
    echo $this->Form->create('User', array('class'=>'form-horizontal', 'action'=>'uploadProfilePicture', 'id'=>'change-picture', 'type'=>'file')); 
    echo $this->Form->input('id', array('value'=>$authUser['id'])); 
    echo $this->Form->file('picture'); 
?> 
<input type="submit" value="Upload" class="btn btn-info" name="submit"> 
<?php echo $this->Form->end(); ?> 

HANDLER IN MODEL

public function uploadFile($check) { 

    $uploadData = array_shift($check); 
    if ($uploadData['size'] == 0 || $uploadData['error'] !== 0) { 
     return false; 
    } 

    $uploadFolder = APP.'uploads'.DS."profile-pictures"; 
     $fileName = time()."_".$uploadData['name']; 
    $uploadPath = $uploadFolder . DS . $fileName; 

    if(!file_exists($uploadFolder)){ 
     mkdir($uploadFolder); 
    } 

    if (move_uploaded_file($uploadData['tmp_name'], $uploadPath)) { 
     $this->set('picture', $fileName); 
     return true; 
    } 

    return false; 
} 
+1

Можете ли вы добавить код, который вы используете для формы? –

+1

сделано !. отредактировал вопрос – yomexzo

ответ

0

Я только что нашел решение своей проблемы на http://php.net/manual/en/function.is-uploaded-file.php.

Если $ _FILES и $ _POST являются пустыми, это может быть связано с

  • предел устанавливается post_max_size в php.ini
  • предел устанавливается upload_max_filesize в php.ini

К сожалению, первое ограничение не сообщается как код ошибки в $ _FILES ['error'].

+0

Вы также можете получить пустые '$ _FILES', если вы забудете объявить' enctype = "multipart/form-data" 'в своей форме, как и я. –

Смежные вопросы