我需要从Symfony中的目录下载文件。问题是,通过身份验证后,我需要下载此文件。
为此,我创建了一个具有ID(id文件)的终结点(GET方法),并且我从React应用程序中进行了调用,并在Header中传递了授权承载。
问题是,该文件不是直接下载的,但是如果我从Chrome输入DevTools,我会在响应中看到该文件存在,但没有下载。
这是PHP代码:
$file = new File($fullPath);
return $this->file($file);
我如何下载文件?
答案 0 :(得分:1)
这是我的示例代码:
/**
* @param Product $product
* @param TranslatorInterface $translator
*
* @SWG\Response(
* response=200,
* description="Get allergensheet of a product",
* )
* @SWG\Tag(name="Product")
*
* @Route("/allergensheet/{id}", methods="GET")
*
* @Security(name="Bearer")
* @return Mixed
*/
public function downloadAllergenSheet(Product $product, TranslatorInterface $translator) {
$allergens = $product->getAllergens();
if($allergens instanceof Allergens) {
if($allergens->getHasSheet()) {
$fs = new Filesystem();
if($fs->exists($translator->trans($product->getArticleNr() . '_allergensheet'))) {
return new BinaryFileResponse($translator->trans($product->getArticleNr() . '_allergensheet'));
}
else {
return new JsonResponse(false, Response::HTTP_NO_CONTENT);
}
}
else {
return new JsonResponse(false, Response::HTTP_NO_CONTENT);
}
}
else {
return new JsonResponse(false, Response::HTTP_NO_CONTENT);
}
}
这可能有帮助吗? 这是为了下载包含有关产品的某些信息的PDF文件。