PHP发布文件通过Yii2& redactor文本编辑器导致空$ _FILES(没有上传)

时间:2015-09-14 13:15:11

标签: php file-upload yii2 http-status-code-301 redactor

详情

详情是我正在使用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,并且php.ini上的upload_max_filesize = 8M

Yii2在表单中自动

method =“POST”,我提供了enctype =“multipart / form-data”

复制

我尝试上传一个文件(仅限kb),当我选择上传文件时会弹出一条包含此消息的警告

  

localhost的页面说

     

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

对于长篇文章感到抱歉,但我想彻底,并尝试了许多选项,但没有解决问题。提前谢谢大家!

1 个答案:

答案 0 :(得分: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']
]

显然,它需要以全名来处理实际页面!