تالار گفتمان nCIS.ir

نسخه‌ی کامل: آپلود فایل با استفاده از وب سرویس
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
سلام و وقت بخیر
دوستان برای اینکه با وب سرویس فایل آپلود کنم چه روشی هست؟
الان از این روش استفاده میکنم:

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
ممنون میشم کمک کنید
آقا هیچکس اطلاعاتی نداره کلاً در این رابطه؟!
هر چقدر هم کم بگید
اصلاً راهم درسته؟
وقتی میفرمایید کار نمیکنه باید جزئیات بیشتری رو مشخص کنید. مثلاً اینکه خطا میگیرین؟ اگه بله، چه خطایی؟ فایل اصلاً آپلود نمیشه؟ و...

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

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