2017-04-14 1 views
0

Je reçois problème dans PUT méthode de YII2 reste api lorsque je passe des images sinon son fonctionnement bien. Dans POST demande son fonctionnement bien.Yii2 REST API PUT méthode avec des images

Ci-dessous est mon code

/** 
    * Funcion to update existing product by productID 
    * 
    * @return type 
    */ 
    public function actionUpdate($id) { 
     $request = Yii::$app->request; 
     $post = $request->post(); 
     $params = Yii::$app->request->bodyParams; 
     print_r($params); 
     die; 
     $model = Product::findOne($id); 
     $images = $model->uploadProductImages($_FILES); 
     $post['images'] = implode(",", $images); 
     $model->updateProduct($id, $post); 
     return $post; 
    } 

Lorsque je tente avec des images ci-dessous est la sortie que je reçois.

Array 
(
    [-----------------------------16309270534592 
Content-Disposition:_form-data;_name] => "name" 

TESTP11APR 
-----------------------------16309270534592 
Content-Disposition: form-data; name="sku" 

SKUTESTP11APR 
-----------------------------16309270534592 
Content-Disposition: form-data; name="images"; filename="Koala.jpg" 
Content-Type: image/jpeg 

???? 
) 

Et j'enlève les champs d'image de swagger puis les données que je reçois. Quel sera le problème.

Répondre

0

PHP prend en charge la méthode HTTP PUT utilisée par certains clients pour stocker des fichiers sur un serveur.

PUT /path/filename.html HTTP/1.1 

Le code suivant est dans le php documention pour le téléchargement de fichiers via PUT:

<?php 
/* PUT data comes in on the stdin stream */ 
$putdata = fopen("php://input", "r"); 

/* Open a file for writing */ 
$fp = fopen("myputfile.ext", "w"); 

/* Read the data 1 KB at a time 
    and write to the file */ 
while ($data = fread($putdata, 1024)) 
    fwrite($fp, $data); 

/* Close the streams */ 
fclose($fp); 
fclose($putdata); 
?>