本文整理汇总了PHP中UploadFile::removeFile方法的典型用法代码示例。如果您正苦于以下问题:PHP UploadFile::removeFile方法的具体用法?PHP UploadFile::removeFile怎么用?PHP UploadFile::removeFile使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类UploadFile
的用法示例。
在下文中一共展示了UploadFile::removeFile方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: afterSave
/**
* afterSave
*
* @param Model $model モデル
* @param bool $created 新規作成
* @param array $options オプション
* @throws Exception
* @return void
*/
public function afterSave(Model $model, $created, $options = array())
{
foreach ($this->_settings[$model->alias]['fileFields'] as $fieldName => $filedOptions) {
if (isset($model->data[$model->alias][$fieldName])) {
$fileData = $model->data[$model->alias][$fieldName];
if ($fileData['name']) {
$uploadFile = $this->UploadFile->create();
$pathInfo = pathinfo($fileData['name']);
$uploadFile['UploadFile']['plugin_key'] = Inflector::underscore($model->plugin);
$keyField = Hash::get($filedOptions, 'contentKeyFieldName', 'key');
$uploadFile['UploadFile']['content_key'] = $model->data[$model->alias][$keyField];
$uploadFile['UploadFile']['field_name'] = $fieldName;
$uploadFile['UploadFile']['original_name'] = $fileData['name'];
$uploadFile['UploadFile']['extension'] = $pathInfo['extension'];
$uploadFile['UploadFile']['real_file_name'] = $fileData;
// フィールド毎にオプションを設定しなおしてsave実行
$this->UploadFile->setOptions($filedOptions);
// ε( v ゚ω゚) < 例外処理
$this->_uploadedFiles[$fieldName] = $this->UploadFile->save($uploadFile);
}
}
}
// アップロードがなかったら以前のデータを挿入する
// formからhiddenで UploadFile.field_name.id 形式でデータが渡ってくる
// $data['UploadFile']にはモデルデータ編集時に添付されてるファイルについてのデータが入っている
$uploadFiles = Hash::get($model->data, 'UploadFile', array());
foreach ($uploadFiles as $uploadFile) {
// 同じfield_nameでアップロードされてるなら以前のファイルへの関連レコードを新規に追加する必要は無い(過去の関連レコードはそのまま)
if (isset($this->_uploadedFiles[$uploadFile['field_name']])) {
// 新たにアップロードされてる
// 履歴のないモデル(is_latest, is_activeカラムがない)だったら、以前のファイルを削除する
// 履歴のないモデルか?
if (!$model->hasField('is_latest')) {
// 履歴をもたないモデルなら以前のファイルを削除
$this->UploadFile->removeFile($model->id, $uploadFile['id']);
}
} else {
// 同じfield_nameでアップロードされてなければ以前のファイルへの関連レコードを入れる
$removePath = $model->alias . '.' . $uploadFile['field_name'] . '.remove';
if (Hash::get($model->data, $removePath, false)) {
// ファイル削除にチェックが入ってるのでリンクしない
// 今のコンテンツIDで関連テーブルのレコードがあったら、ユーザモデルのように履歴のないモデルなのでそのときは関連テーブルを消す必要があるのでremoveFileは呼んでおく。
$this->UploadFile->removeFile($model->id, $uploadFile['id']);
} else {
$uploadFileId = $uploadFile['id'];
$this->_saveUploadFilesContent($model, $uploadFileId);
}
}
}
// 関連テーブルの挿入
foreach ($this->_uploadedFiles as $uploadedFile) {
$uploadFileId = $uploadedFile['UploadFile']['id'];
$this->_saveUploadFilesContent($model, $uploadFileId);
}
$this->_uploadedFiles = array();
}