diff --git a/config/filesystems.php b/config/filesystems.php index ff77a5023..dbdde0975 100755 --- a/config/filesystems.php +++ b/config/filesystems.php @@ -48,6 +48,12 @@ return [ 'root' => storage_path('app'), ], + 'private' => [ + 'driver' => 'local', + 'root' => storage_path('app/private'), + 'url' => env('APP_URL') . '/storage', + ], + 'public' => [ 'driver' => 'local', 'root' => storage_path('app/public'), diff --git a/packages/Webkul/Product/src/Repositories/ProductDownloadableLinkRepository.php b/packages/Webkul/Product/src/Repositories/ProductDownloadableLinkRepository.php index 6bfa9b35a..e0a439958 100755 --- a/packages/Webkul/Product/src/Repositories/ProductDownloadableLinkRepository.php +++ b/packages/Webkul/Product/src/Repositories/ProductDownloadableLinkRepository.php @@ -3,22 +3,24 @@ namespace Webkul\Product\Repositories; use Illuminate\Support\Facades\Storage; -use Webkul\Core\Eloquent\Repository; use Illuminate\Support\Str; +use Webkul\Core\Eloquent\Repository; class ProductDownloadableLinkRepository extends Repository { /** - * Specify Model class name + * Specify model class name. * * @return string */ - function model() + public function model() { return 'Webkul\Product\Contracts\ProductDownloadableLink'; } /** + * Upload. + * * @param array $data * @param integer $productId * @return array @@ -28,7 +30,7 @@ class ProductDownloadableLinkRepository extends Repository foreach ($data as $type => $file) { if (request()->hasFile($type)) { return [ - $type => $path = request()->file($type)->store('product_downloadable_links/' . $productId), + $type => $path = request()->file($type)->store('product_downloadable_links/' . $productId, 'private'), $type . '_name' => $file->getClientOriginalName(), $type . '_url' => Storage::url($path), ]; @@ -39,8 +41,10 @@ class ProductDownloadableLinkRepository extends Repository } /** + * Save links. + * * @param array $data - * @param \Webkul\Product\Contracts\Product $product + * @param \Webkul\Product\Models\Product $product * @return void */ public function saveLinks(array $data, $product) @@ -67,4 +71,4 @@ class ProductDownloadableLinkRepository extends Repository $this->delete($linkId); } } -} \ No newline at end of file +} diff --git a/packages/Webkul/Shop/src/Http/Controllers/DownloadableProductController.php b/packages/Webkul/Shop/src/Http/Controllers/DownloadableProductController.php index 951d369ed..7652bb4ec 100644 --- a/packages/Webkul/Shop/src/Http/Controllers/DownloadableProductController.php +++ b/packages/Webkul/Shop/src/Http/Controllers/DownloadableProductController.php @@ -89,7 +89,11 @@ class DownloadableProductController extends Controller } if ($downloadableLinkPurchased->type == 'file') { - return Storage::download($downloadableLinkPurchased->file); + $privateDisk = Storage::disk('private'); + + return $privateDisk->exists($downloadableLinkPurchased->file) + ? $privateDisk->download($downloadableLinkPurchased->file) + : abort(404); } else { $fileName = $name = substr($downloadableLinkPurchased->url, strrpos($downloadableLinkPurchased->url, '/') + 1);; diff --git a/packages/Webkul/Shop/src/Http/Controllers/ProductController.php b/packages/Webkul/Shop/src/Http/Controllers/ProductController.php index a9a91969f..05485df1b 100755 --- a/packages/Webkul/Shop/src/Http/Controllers/ProductController.php +++ b/packages/Webkul/Shop/src/Http/Controllers/ProductController.php @@ -96,7 +96,11 @@ class ProductController extends Controller $productDownloadableLink = $this->productDownloadableLinkRepository->findOrFail(request('id')); if ($productDownloadableLink->sample_type == 'file') { - return Storage::download($productDownloadableLink->sample_file); + $privateDisk = Storage::disk('private'); + + return $privateDisk->exists($productDownloadableLink->sample_file) + ? $privateDisk->download($productDownloadableLink->sample_file) + : abort(404); } else { $fileName = $name = substr($productDownloadableLink->sample_url, strrpos($productDownloadableLink->sample_url, '/') + 1);