如何使用symfony中的休息Web服务上传图像

时间:2014-06-30 07:15:51

标签: web-services symfony image-uploading

我正在使用我的symfony应用程序中的rest web服务尝试上传图像。我尝试了以下代码,但它抛出错误未定义的索引照片。我想知道什么是正确的方法。 我已经关注了how to send / get files via web-services in php,但它没有效果。

这是我的html文件,用于访问应用程序URL:

<form action="http://localhost/superbApp/web/app_dev.php/upload" enctype='multipart/form-data' method="POST">


<input type="file" name="photo" ></br>


 <input type="submit" name="submit" value="Upload">

</form>

我的控制器方法如下:

public function uploadAction(){

    $request = $this->getRequest();  /*** get the request method  ****/
    $RequestMethod = $request->getMethod();


    $uploads_dir = '/uploads';
    foreach ($_FILES["photo"]["error"] as $key => $error) {
        if ($error == UPLOAD_ERR_OK) {
            $tmp_name = $_FILES["photo"]["tmp_name"][$key];
            $name = $_FILES["photo"]["name"][$key];
            move_uploaded_file($tmp_name, $uploads_dir."/".$name);
        }
    }
}

1 个答案:

答案 0 :(得分:0)

如果您使用的是Symfony,则应使用Symfony表单执行此操作。在您的示例中,您放置了一个指向app_dev.php的URL,但该URL在生产模式下不起作用。在Symfony食谱中有一篇文章解释了如何上传文件,你应该阅读:

http://symfony.com/doc/current/cookbook/doctrine/file_uploads.html

完成此操作后,您可以使用为操作指定的路径通过Rest WebService上传图像,将Content-Type指定为multipart / form-data,并添加图像的字段名称将是喜欢这个package_yourbundle_yourformtype [file]。