رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
پیام خالی بودن فایل (حل شد)
#1
سلام.
میخوام توی فرم وقتی عکس رو انتخاب نمیکنم پیام بده
عکس نمیتواند خالی باشد.
توی مدل اومدم یه attributeLabels واسه این کار اضافه کردم تا پیام بده.حالا عکس نباشه پیام میده و مشکلی ندارم ولی موقعی که عکس هست و فرم Submit میشه بازم میگه "عکس نمیتواند خالی باشد."

یه rule هم اضافه کردم .
array('photo,', 'required'),
پاسخ
تشکر شده توسط:
#2
چون عکس با POST ارسال نمیشه و با FILES فرستاده میشه. از CFileValidator استفاده کنید:
array('photo', 'file', 'maxSize' => 1048576, 'tooLarge' => 'Only up to 1MB allowed.', 'mimeTypes' => 'image/jpeg, image/png', 'wrongMimeType' => 'Only JPEG/PNG Allowed', 'types' => 'jpg, png', 'wrongType' => 'Only .jgp/.png Allowed.'),
پاسخ
تشکر شده توسط: hamid
#3
این ارور رو داد
In order to use MIME-type validation provided by CFileValidator fileinfo PECL extension should be installed.
پاسخ
تشکر شده توسط:
#4
اینو فعال کردم درست شد.
extension=php_fileinfo.dll
پاسخ
تشکر شده توسط:
#5
وقتی فرم رو خالی ارسال میکنم بجای اروری که نوشتم باید بده خطای 500 میده.
Error 500
Trying to get property of non-object
پاسخ
تشکر شده توسط:
#6
این خطا مال ولیدیتور نیست. مال وقتی هست که میخواین از عکس استفاده کنید. باید اینطوری کار کنید:
if($photo = CUploadedFile::getInstance($model, 'photo')) {
    // process file here
}
پاسخ
تشکر شده توسط: hamid
#7
ممنون ارور رفع شد.اما خطای اینکه عکس خالیه رو نمیده همون کد آقای شهرکی رو گذاشتم.
پاسخ
تشکر شده توسط:
#8
من تست کردم خطا داد وقتی عکس رو انتخاب نکردم. کد کاملتون رو بگذارین.
پاسخ
تشکر شده توسط: hamid
#9
دو تا Validator رو بگذارین. هم file و هم required (توی دوتا رول جداگانه).
پاسخ
تشکر شده توسط: hamid
#10
بله ممنون درست شد.
پاسخ
تشکر شده توسط:
#11
وقتی میخوام فایل انتخاب کنم و کنسل میکنم ارور رو نشون میده اما وقتی فرم رو خالی ارسال میکنم ارور نمیده.زمانی هم که  validator ها فعال هستن و فرم رو سابمیت میکنم ارور میده که عکس انتخاب نشده.یعنی برعکس عمل میکنه وقتی پره ارور خالی بودن میده.

array('slide', 'required', 'message'=>'عکس نمی تواند خالی باشد.'),
           array(
               'slide', 'file',
               'maxSize' => 5242880,
               'on'=>'insert',
               'tooLarge' => 'حجم فایل از 5 مگابایت بیشتر است.',
               'mimeTypes' => 'image/jpeg',
               'wrongMimeType' => 'فقط فایل های jpg و jpeg مجاز هستند.',
               'types' => 'jpg, jpeg',
               'wrongType' => 'فقط فایل های jpg و jpeg مجاز هستند.',
           ),
          array(
               'slide', 'file',
               'maxSize' => 5242880,
               'on'=>'update', 'allowEmpty'=>true,
               'tooLarge' => 'حجم فایل از 5 مگابایت بیشتر است.',
               'mimeTypes' => 'image/jpeg',
               'wrongMimeType' => 'فقط فایل های jpg و jpeg مجاز هستند.',
               'types' => 'jpg, jpeg',
               'wrongType' => 'فقط فایل های jpg و jpeg مجاز هستند.',
           ),


 public function actionCreate() {
        $model = new Indextopslider;
        if($model->slide = CUploadedFile::getInstance($model, 'slide')){
            if ((isset($_POST['Indextopslider'])) && ($model->slide->error == 0) && ($model->slide->size <= 5242880) && ($model->slide->type == 'image/jpeg')) {
                $model->attributes = $_POST['Indextopslider'];
                $model->year= date('Y');
                $model->confirmed = 1;
                if ($model->save()) {
                    Image::uploadSaver($model->slide->tempName, 'slider\'.date('Y').'\', $model->id);
                    $this->redirect(array('index'));
                }
            }
        }
        $this->render('create', compact('model'));
    }
پاسخ
تشکر شده توسط:
#12
با clientValidation مشکل پیش میاد یا ajaxValidation یا کلاً سمت سرور مشکل دارین؟
پاسخ
تشکر شده توسط:




کاربران در حال بازدید این موضوع: 1 مهمان