2014-02-16 3 views
0

Я использую CakePHP 2.3.6 и просто добавил загрузчик изображений Майлза Джонсона. Все, кажется, работает, когда я использую свой просмотр для загрузки фотографии. Я получаю успешное возвращение. Файл создается с правильным именем, поэтому функции formatName работают правильно. Но размер созданного файла всегда только 56bytes. Независимо от того, насколько большой исходный загруженный файл.Загружающий файл Miles Johnson генерирует пустые файлы

У меня есть сильное чувство, что что-то не так с правами пользователя или с конфигурацией сервера Apache, что он, возможно, не загружает.

Кто-нибудь знает, что может позволить мне создать файл, но не поместить содержимое в этот файл? На Uploader Howto ничего не сказано о каких-либо изменениях, которые я должен был бы сделать для конфигурации apache или php.

Вид:

<?php 
    echo $this->Form->create('Site'); 
    echo $this->Form->input('startpageImage', array('type' => 'file')); 
    echo $this->Form->end('Submit'); 
?> 

Модель:

public $actsAs = array(
    'Uploader.Attachment' => array(
     'startpageImage' => array(
      'tempDir' => TMP, 
      'finalPath' => '/img/uploads/', 
      'nameCallback' => 'formatName',   
     ) 
    ) 
); 
public function formatName($name, $file) { 
    return sprintf('%s-%s', $this->field('id'), $name); 
} 
+0

Что-то попробовать - сначала найдите файл phpini, используя: 'php -i | grep php.ini' , а затем измените параметр: 'upload_max_filesize = xxM', где xx является подходящим значением. – jimmymadon

+0

Спасибо, я проверил это, но он уже был на 2М и даже 96 КБ снимки не удалось загрузить. – David

ответ

0

Я написал письмо в Miles Jones, и он сразу же нашел ошибку:

Вид:

<?php 
echo $this->Form->create('Site', array('type' => 'file')); 
echo $this->Form->input('startpageImage', array('type' => 'file')); 
echo $this->Form->end('Submit'); 
?> 

Я забыл

, массив ('тип' => 'файл')

в первой строке формы. Нет черной магии, нет ракетостроения ... :)

+0

И если у вас уже есть массив, вам нужно объединить их: 'array ('type' => 'file'), array ('role' => 'form')' должен стать 'array (' type '=>' file ',' role '=>' form ') '. Он не примет два массива. – schnauss

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