我正在编写一个RESTful API.我使用不同的动词上传图片时遇到问题.
考虑:
我有一个对象可以通过post/put/delete/get请求创建/修改/删除/查看到URL.当有文件要上传时,请求是多部分形式,或者当只有文本要处理时,请求是application/xml.
要处理与对象关联的图像上传,我正在执行以下操作:
if(isset($_FILES['userfile'])) {
$data = $this->image_model->upload_image();
if($data['error']){
$this->response(array('error' => $error['error']));
}
$xml_data = (array)simplexml_load_string( urldecode($_POST['xml']) );
$object = (array)$xml_data['object'];
} else {
$object = $this->body('object');
}
Run Code Online (Sandbox Code Playgroud)
这里的主要问题是当尝试处理put请求时,显然$ _POST不包含put数据(据我所知!).
作为参考,我正在构建请求:
curl -F userfile=@./image.png -F xml="<xml><object>stuff to edit</object></xml>"
http://example.com/object -X PUT
Run Code Online (Sandbox Code Playgroud)
有没有人有任何想法如何xml在我的PUT请求中访问变量?
我正在开发一个Symfony2项目,我有一个用户实体,我需要一个ajax搜索栏来搜索我的用户.问题是在我的AJAX响应中,控制器由于某种原因返回数据库中的所有用户.
JS
$('#search').keyup(function() {
searchText = $(this).val();
$.ajax({
type: "GET",
url: "/Apana/web/app_dev.php/search",
dataType: "json",
data: {searchText : searchText},
success : function(response)
{
console.log(response);
}
});
});
Run Code Online (Sandbox Code Playgroud)
控制器
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Serializer\Serializer;
use Symfony\Component\Serializer\Encoder\XmlEncoder;
use Symfony\Component\Serializer\Encoder\JsonEncoder;
use Symfony\Component\Serializer\Normalizer\GetSetMethodNormalizer;
use Apana\Bundle\MainBundle\Entity\User;
class SearchController extends Controller
{
public function liveSearchAction(Request $request)
{
$string = $this->getRequest()->request->get('searchText');
//$string = "alfa";
$users = $this->getDoctrine()
->getRepository('ApanaMainBundle:User')
->findByLetters($string);
//return users on json format
$encoders = array(new XmlEncoder(), new JsonEncoder());
$normalizers = array(new GetSetMethodNormalizer());
$serializer …Run Code Online (Sandbox Code Playgroud)