我正在尝试从在线资源下载并保存 PDF 文件。我已经看过关于文件上传的食谱章节,并尝试修改该技术以供我自己使用。我只是无法让它工作。
控制器代码:
namespace Acme\DemoBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Acme\DemoBundle\Entity\Shipment;
class WelcomeController extends Controller
{
public function indexAction(Request $request)
{
echo $barcodeUrl = "http://www.website.com/somefile.pdf";
$Shipment = new Shipment();
$Shipment->setBarcodeUrl($barcodeUrl);
$em = $this->getDoctrine()->getEntityManager();
$em->persist($Shipment);
$em->flush();
// Saving The File:
$saveto = __DIR__.'/../../../../web/uploads/documents';
$ch = curl_init($barcodeUrl);
$fp = fopen($saveto,'wb');
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
fclose($fp);
return new Response('Created shipment and saved file");
}
protected function getUploadRootDir()
{
return __DIR__.'/../../../../web'.$this->getUploadDir();
}
protected function getUploadDir()
{
return 'uploads/documents';
}
}
每次我运行上面的代码。它将一个文件保存在 web 文件夹中,该文件具有我提到的路径作为它的名称。该文件无法打开,甚至没有以任何扩展名保存。
保存的文件:/../../../../web/home/webmuch/uploads
在 web 文件夹中。