我用php和symfony制作了一个项目。 我的问题如下:
在我的应用程序中,我可以上传一个对象(与文件相关联),我可以下载它。
可以通过以下路由下载:
symfony/app_dev.php/download/product/{id}
其中{id}
当然是产品的ID。
如何在不显示路由中的{id}
的情况下获得相同的结果?
这非常重要,因为每个用户只能下载一些确定的产品,但如果路由中显示了ID,则每个用户都可以在未经授权的情况下下载所有产品。
实际上,问题在于“在两个操作中传递{id}
信息而不在路由中显示它。”
感谢您的帮助
答案 0 :(得分:0)
不知道在你的情况下是否真的建议安全性,但这是我通常使用POST代替GET
树枝:
<script>
$.post( "{{ path('download_product')}}", {
id: 1,
})
</script>
OR
<form action="{{ path('download_product')}}" methode="POST">
<input type="hidden" id="id" name="id" value="00000001"/>
<button role="submit">
</form>
路由:
<route id="download_product" pattern="/download/product">
<default key="_controller">Vendor:Bundle:downloadProduct</default>
</route>
控制器:
public function downloadProductAction()
{
$request = $this->get('request');
$id = $request->query->get('id');
return new Response($id);
}