Подробности в том, что я использую https://github.com/yiidoc/yii2-redactor включить текстовый редактор в моем приложении Yii2.
view.php
<?php $form = ActiveForm::begin(['options' => ['enctype' => 'multipart/form-data']]); ?>
<?= $form->field($model, 'text')->widget(\yii\redactor\widgets\Redactor::className()) ?>
web.php
'redactor' => [
'class' => 'yii\redactor\RedactorModule',
'uploadDir' => '/uploads/',
'uploadUrl' => '/uploads/',
'imageUploadRoute' => ['/uploads/'],
'fileUploadRoute' => ['/uploads/'],
'imageManagerJsonRoute' => ['/uploads/'],
'fileManagerJsonRoute' => ['/uploads/'],
'uploadUrl' => '/uploads/',
'imageAllowExtensions'=>['jpg','png','gif']
]
добавления / index.php
как описано здесь для uploads.php http://imperavi.com/redactor/docs/upload-images/
root .htaccess
<IfModule mod_autoindex.c>
Options -Indexes
</IfModule>
<IfModule mod_rewrite.c>
RewriteCond %{SCRIPT_FILENAME} -d
RewriteCond %{SCRIPT_FILENAME} -f
RewriteRule "(^|/)\." - [F]
</IfModule>
<FilesMatch "(\.(bak|bat|config|sql|fla|md|psd|ini|log|sh|inc|swp|dist)|~|init|composer\.json|composer\.lock)$">
Order allow,deny
Deny from all
Satisfy All
</FilesMatch>
<IfModule php5_module>
php_value session.cookie_httponly true
</IfModule>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php
и у меня пока нет .htaccess в папке загрузок.
file_uploads = On, post_max_size = 8M и upload_max_filesize = 8M на php.ini
method = «POST» автоматически с помощью Yii2 в формах, и я предоставил enctype = «multipart / form-data»
Я пытаюсь загрузить файл (только некоторые килобайты), и когда я выбираю его для загрузки, появляется всплывающее предупреждение с этим сообщением
Страница на localhost говорит
правда
По отладке я вижу, что он проходит через файл localhost / blah / uploads / index.php и переменная $ _FILES пуста. Сначала пост отправляет запрос к localhost / blah / uploads и получает 301 Moves Permanently, и я могу увидеть файл там, а затем 200 OK GET из localhost / blah / uploads /. Реферер, где находится представление, — это еще один URL, скажем, localhost / blah / posts / update / 1.
Извините за длинный пост, но я хотел быть тщательным и перепробовал много вариантов, не решая проблему. Спасибо всем заранее!
Через 3 дня я только что, задав здесь вопрос, узнал, что должен был сделать:
web.php
'redactor' => [
'class' => 'yii\redactor\RedactorModule',
'uploadDir' => '/uploads/index.php',
'uploadUrl' => '/uploads/index.php',
'imageUploadRoute' => ['/uploads/index.php'],
'fileUploadRoute' => ['/uploads/index.php'],
'imageManagerJsonRoute' => ['/uploads/index.php'],
'fileManagerJsonRoute' => ['/uploads/index.php'],
'imageAllowExtensions'=>['jpg','png','gif']
]
По-видимому, это требует фактической страницы, которая будет адресована на полное имя!
Других решений пока нет …