通过Yii2&;密文编辑器导致$_FILES为空(未上载任何内容)


PHP post file through Yii2 & redactor text editor results in empty $_FILES (nothing uploaded)

详细信息

细节是我正在使用的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=";多部分/形式数据";


复制

我试图上传一个文件(仅限一些kb(,当我选择要上传时,会弹出一个警报,其中包含以下消息

localhost上的页面显示

真实

通过调试,我可以看到它通过localhost/blah/uploads/index.php文件,$_FILES变量为空。首先,该帖子向localhost/blah/uploads发出请求,并得到一个301 Moved Permanently,我可以在其中看到该文件,然后是来自localhost/blah/uploads/的200 OK GET。视图所在的referer是另一个url,比如localhost/blah/posts/update/1。

很抱歉发了这么长的帖子,但我想做得很彻底,并且尝试了很多选项都没有解决这个问题。提前感谢大家!

三天后,在问了这里的问题后,我发现我必须制作:

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']
]

显然,它需要实际页面的全名!