2016-12-21 8 views
0

このコードはローカルサーバで正常に動作しますが、ライブサーバではエラー403が発生します。ファイルはアップロードされません。私が 'type' => 'file'を使用すると、Forbiddenエラーが発生します。ここでは、ファイルもポストで入力され、このフォームタイプを定義する方法をCakephp 3:ライブサーバで編集するときにエラーが発生する

if ($this->request->is(['patch', 'post', 'put'])) { 
    if(!empty($this->request->data['image_edit']['name'])){ 
     // upload image code 
    } 
} 
$depositOption = $this->DepositOptions->patchEntity($depositOption, $this->request->data); 
$this->DepositOptions->save($depositOption) 

よう

<?php 
    echo $this->Form->create($depositOption,['type'=>'file']); // type='post' is working but image not uploading 
    echo $this->Form->input('name'); 
    echo $this->Form->input('image_edit',['type'=>'file']); 
    echo $this->Form->submit("Submit") 
    echo $this->Form->end() 
?> 

私のコントローラのコード私のフォームコードです。

+0

デバッグモードを有効にしましたか? –

+0

私の 'debug' => false –

+0

Plzを有効にしてもう一度チェックしてください。エラーが発生することがあります。 –

答えて

0

これを試しましたか?フォームオプションを使用してenctypeを追加する

<?= $this->Form->create($depositOption,['type'=>'post','enctype' => 'multipart/form-data']) ?> 
+1

[これは正確には '' type '=>' file ''のようなものですから(https://github.com/cakephp/cakephp/blob/master/src/View)これは本当に答えとしては意味がありません。 /Helper/FormHelper.php#L401-L403)、つまり何も変わっていないということです。 – AD7six

+0

実際に私は、type = fileがpostメソッドでデータを送信することを知っていますが、type = 'post'は動作していると言われていますが、type = 'file'を使用すると動作しません。ですから、keep type = "post"と指定してenctypeをオプションに追加すると、うまく動作するかもしれません。実際に私は数ヶ月前に同じ問題に直面しました。私はこのコードが私のために働いているのか分からない。 –

+0

@ AD7sixこれは私のために働いています。証拠をご覧くださいhttps://www.youtube.com/watch?v=ddFTJuQCli4&feature=youtu.be –

関連する問題