私はCakePHP 2.1.1とMiles JohnsonのUploader Plugin v 3.5を使用しています。
FileValidationの動作をアンロードしようとしたときに問題があるとは思うが、かなりうまく動いている。unload()CakePHP Uploaderプラグインが動作しないようです。
私は両方の動作をUploader.Attachment
とUploader.FileValidator
と設定しました(質問の下部を参照)。
afterSave
コールバックで、Post
を再度保存して、別のロケールの翻訳済みフィールドを追加する必要があります。
再度保存すると、FileValidation
の動作でエラーが発生するようです。
failed to open stream: No such file or directory [APP/Plugin/Uploader/Model/Behavior/FileValidationBehavior.php, line 296]
何とか動作がtmpファイルを再度探しています。
私がFileValidation
の動作をまったく定義していないときは、うまくいっています。だから私はそれが通常のsave()
の間に仕事をした後の行動を無効にすることを考えました。私は自分の二番目のsave()
に行く前です。 afterSave($created)
で
は、私はそれゆえ状態
$this->Behaviors->unload('FileValidation');
$this->save($data);
エラーは消えますが、私はリターンで4回の警告を得る:私も$this->Behaviors->disable('FileValidation')
を試みたが、無駄に
Warning (512): Could not find validation handler maxWidth for file [CORE/Cake/Model/Model.php, line 3155]
Warning (512): Could not find validation handler maxHeight for file [CORE/Cake/Model/Model.php, line 3155]
Warning (512): Could not find validation handler filesize for file [CORE/Cake/Model/Model.php, line 3155]
Warning (512): Could not find validation handler required for file [CORE/Cake/Model/Model.php, line 3155]
を。 これは動作のバグですか(正しくアンロードしていないか)、またはアンロードを正しく処理していませんか?
種類について、 バート
行動のセットアップ:
public $actsAs = array('Uploader.Attachment' => array(
'file' => array(
'name' => 'uniqueFilename', // Name of the function to use to format filenames
'baseDir' => APP, // See UploaderComponent::$baseDir
'uploadDir' => 'webroot/img/upload/', // See UploaderComponent::$uploadDir
'dbColumn' => 'uploadPath', // The database column name to save the path to
'importFrom' => '', // Path or URL to import file
'defaultPath' => '', // Default file path if no upload present
'maxNameLength' => 30, // Max file name length
'overwrite' => false, // Overwrite file with same name if it exists
'stopSave' => true, // Stop the model save() if upload fails
'transforms' => array(), // What transformations to do on images: scale, resize, etc
's3' => array(), // Array of Amazon S3 settings
'metaColumns' => array( // Mapping of meta data to database fields
'ext' => 'ext',
'type' => 'type',
'size' => 'size',
'group' => 'group',
'width' => 'width',
'height' => 'height',
'filesize' => 'size',
'name'=>'name'
)
)
),
'Uploader.FileValidation' => array(
'file' => array(
'maxWidth' => array(
'value' => 1000,
'error' => 'Image too wide. Max 1000px'
),
'maxHeight' => array(
'value' => 1000,
'error' => 'Image too high. Max 1000px'
),
'extension' => array(
'value' => array('gif', 'jpg', 'png', 'jpeg'),
'error' => 'Mimetype incorrect',
),
'filesize' => array(
'value' => 1048576,
'error' => 'Filesize too high. Max 1 MB'
)
)
)
);
ありがとう、私は私のプラットフォームのFileuploadセクションに再び潜んですぐにそれをチェックアウトします。 –