رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
آپلود فایل با استفاده از وب سرویس
#1
Question 
سلام و وقت بخیر
دوستان برای اینکه با وب سرویس فایل آپلود کنم چه روشی هست؟
الان از این روش استفاده میکنم:

public function actionCreateNew()
    {
       $model = new Profile();
       $model->load(Yii::$app->getRequest()->getBodyParams(), '');

       if ($model->validate()) {

           $model->imageFile = UploadedFile::getInstance($model, 'imageFile');
           if ($model->upload()) {
               // file is uploaded successfully
               $model->ImagePath = 'uploads/Profile/' . $model->ID . '.' . $model->imageFile->extension;
               if ($model->save(false)) {
                   $response = Yii::$app->getResponse();
                   $response->setStatusCode(201);
                   $id = implode(',', array_values($model->getPrimaryKey(true)));
                   $response->getHeaders()->set('Location', Url::toRoute([$this->viewAction, 'id' => $id], true));
               }
           }
       } elseif (!$model->hasErrors()) {
           throw new ServerErrorHttpException('Failed to create the object for unknown reason.');
       }

       return $model;
   }


در کل این متد واسه ثبت  نامه و در controller پروفایل قرار داره کارش هم اینه که اطلاعات (اسم و فامیل و آدرس و عکس پروفیل) کاربر رو میگیره و در دیتابیس ذخیره میکنه
ولی خب موضوع اینه که کار نمیده! Huh
ممنون میشم کمک کنید
پاسخ
تشکر شده توسط:
#2
آقا هیچکس اطلاعاتی نداره کلاً در این رابطه؟!
هر چقدر هم کم بگید
اصلاً راهم درسته؟
پاسخ
تشکر شده توسط:
#3
وقتی میفرمایید کار نمیکنه باید جزئیات بیشتری رو مشخص کنید. مثلاً اینکه خطا میگیرین؟ اگه بله، چه خطایی؟ فایل اصلاً آپلود نمیشه؟ و...

جزئیات بیشتری رو مشخص کنید تا بشه کمک کنیم.
پاسخ
تشکر شده توسط: pooyacsx
#4
آخه موضوع اینه که من اصلاً نمیدونم این روش واسه وب سرویس درسته یا نه!
راستش اینو من واسه کنترلر بکندم زدم و داره درست کار می کنه(یعنی اطلاعات کاربر + عکس پروفایلش رو ذخیره میکنه)
ولی حالا که همون کد رو گذاشتم واسه اکشن create وب سرویسم اصلاً نمیتونه اطلاعات رو بگیره یعنی تو خط چهارم:
$model->load(Yii::$app->getRequest()->getBodyParams(), '');
که باید عکس و مشخصات از طریق کاربر فرستاده بشه(که این کار را دارم با نرم افزار postman از طریق متد PUT و form-data طبق عکس پیوست انجام میدم) همونجا میگه که اطلاعات دریافت نشد!
   
حالا 2 حالت وجود داره:
1- ارسال فایل از طریق postman مشکل داره، پس لطف کنید اگر راه بهتری هست بگید؟
2- من اطلاعات را درست دریافت نمی کنم و قالب  actionCreate من مشکل داره، پس لطف کنید راه درست اورراید کردن actionCreate در وب سرویس REST رو بهم بگید؟

(3- البته مورد 3 هم میتونه این باشه که از کجا بفهمم مورد 1 یا 2 Big Grin )
خیلی خیلی ممنون میشم جوابم را بدهید چون الان گیر همین تیکم
مرسی
پاسخ
تشکر شده توسط:




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