我有什麼看起來在Yii內的一些奇怪的行爲。Yii驗證與文件上傳失敗
我有一個簡單的文件上傳,需要一個name
和文件本身。
如果我只是提交沒有名稱或文件的表單,我可以繞過驗證(即 - 我的控制器操作被調用,並且正在嘗試處理上傳的文件)我認爲我的規則()會相應地設置來停止此操作。這些是我的相關規則:
public function rules() {
return array(
array('name file', 'required', 'message' => 'This field is required'),
array('file', 'file', 'on' => 'insert', 'allowEmpty' => false, 'safe'=>true,
'maxSize'=> 512000,
'maxFiles'=> 1,
'mimeTypes' => 'application/msword, text/plain',
'tooLarge'=> 'file cannot be larger than 500KB.',
'wrongMimeType'=> 'Format must be: .doc .txt'
),
我指定該文件是必需的,並且在文件數組中,allowEmpty應該是false。那麼我在這裏做錯了什麼?
預先感謝任何幫助
控制器
public function actionCreate() {
$model = new File;
if (isset($_POST['File'])) {
$model->setAttributes($_POST['File']);
// Set file
$model->file = CUploadedFile::getInstance($model,'file');
// Set directory
$dest = Yii::getPathOfAlias('application.uploads');
$model->tmp_name = time();
$model->date_added = new CDbExpression('NOW()');
$model->file_type = $model->file->type;
$model->file_size = $model->file->size;
$model->extension = $model->file->extensionName;
if ($model->save()) {
$model->file->saveAs(($dest . '/' . $model->tmp_name . '.' . $model->file->extensionName));
Yii::app()->user->setFlash('success','<strong>Success!</strong> Your file has been uploaded');
}
}
$this->render('create', array('model' => $model));
}
請同時將控制器操作代碼添加到您的問題中。 –