PHP code example of screamz / securedownload-bundle
1. Go to this page and download the library: Download screamz/securedownload-bundle library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
screamz / securedownload-bundle example snippets
public function generateHashAction()
{
$secureDownloader = $this->get('screamz.service.secure_downloader');
$currentUser = $this->getAuthenticationManager()->getCurrentUser();
// Provided by the server (client don't know it), use something that identify the current logged user.
$accessKey = md5('somecustomhash'.$currentUser->getId());
try{
// This return a string
$transactionID = $secureDownloader->preAuthorizeDocumentPath('/home/site/www/document.txt', $accessKey);
} catch {DownloadRequestException $e){
// Do something with errors
var_dump($e->getReasons());
// Throw a 400 / 500 HTTP exception
throw new HttpException(500);
}
// Do something...
// Return response with the transactionID or render a template with link to download controller...
}
public function downloadAction($transactionID)
{
$secureDownloader = $this->get('screamz.service.secure_downloader');
$currentUser = $this->getAuthenticationManager()->getCurrentUser();
// Provided by the server (client don't know it), use something that identify the current logged user.
$accessKey = md5('somecustomhash'.$currentUser->getId());
try {
$binaryResponse = $secureDownloader->getResourceBinaryFileResponse($transactionID, $accessKey);
return $binaryResponse;
} catch (DownloadRequestException $e) {
// Do something with errors
var_dump($e->getReasons());
// Throw a 400 / 500 HTTP exception
throw new HttpException(500);
}
}
public function generateHashAction()
{
$secureDownloader = $this->get('screamz.service.secure_downloader');
$currentUser = $this->getAuthenticationManager()->getCurrentUser();
// Provided by the server (client don't know it), use something that identify the current logged user.
$accessKey = md5('somecustomhash'.$currentUser->getId());
try{
// This return a string
$transactionID = $secureDownloader->preAuthorizeResource(json_encode(['token' => 'sometoken'], $accessKey);
} catch {DownloadRequestException $e){
// Do something with errors
var_dump($e->getReasons());
// Throw a 400 / 500 HTTP exception
throw new HttpException(500);
}
// Do something...
// Return response with the transactionID or render a template with link to download controller...
}
public function downloadAction($transactionID)
{
$secureDownloader = $this->get('screamz.service.secure_downloader');
$currentUser = $this->getAuthenticationManager()->getCurrentUser();
// Provided by the server (client don't know it), use something that identify the current logged user.
$accessKey = md5('somecustomhash'.$currentUser->getId());
try {
$resource = $secureDownloader->getResource($transactionID, $accessKey);
} catch (DownloadRequestException $e){
throw $this->createAccessDeniedException('Accès à la ressource non autorisé.');
}
$params = json_decode($resource->getTransactionSavedData(), true);
// Call Webservice from here using $params
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.