diff --git a/packages/Webkul/Admin/src/Http/routes.php b/packages/Webkul/Admin/src/Http/routes.php
index 3c31b7304..0331e1d5a 100755
--- a/packages/Webkul/Admin/src/Http/routes.php
+++ b/packages/Webkul/Admin/src/Http/routes.php
@@ -244,6 +244,10 @@ Route::group(['middleware' => ['web']], function () {
'view' => 'admin::catalog.products.edit'
])->name('admin.catalog.products.productlinksearch');
+ Route::get('/products/{id}/{attribute_id}', 'Webkul\Product\Http\Controllers\ProductController@download')->defaults('_config', [
+ 'view' => 'admin.catalog.products.edit'
+ ])->name('admin.catalog.products.file.download');
+
// Catalog Category Routes
Route::get('/categories', 'Webkul\Category\Http\Controllers\CategoryController@index')->defaults('_config', [
'view' => 'admin::catalog.categories.index'
diff --git a/packages/Webkul/Admin/src/Resources/views/catalog/products/field-types/file.blade.php b/packages/Webkul/Admin/src/Resources/views/catalog/products/field-types/file.blade.php
index eebd50a23..956865c37 100644
--- a/packages/Webkul/Admin/src/Resources/views/catalog/products/field-types/file.blade.php
+++ b/packages/Webkul/Admin/src/Resources/views/catalog/products/field-types/file.blade.php
@@ -1,5 +1,5 @@
@if ($product[$attribute->code])
-
+
@endif
diff --git a/packages/Webkul/Admin/src/Resources/views/catalog/products/field-types/image.blade.php b/packages/Webkul/Admin/src/Resources/views/catalog/products/field-types/image.blade.php
index 0cc3c63d9..5adea8795 100644
--- a/packages/Webkul/Admin/src/Resources/views/catalog/products/field-types/image.blade.php
+++ b/packages/Webkul/Admin/src/Resources/views/catalog/products/field-types/image.blade.php
@@ -1,5 +1,5 @@
@if ($product[$attribute->code])
-
+
@endif
diff --git a/packages/Webkul/Product/src/Helpers/View.php b/packages/Webkul/Product/src/Helpers/View.php
index 6d82df9ae..16bca34d5 100755
--- a/packages/Webkul/Product/src/Helpers/View.php
+++ b/packages/Webkul/Product/src/Helpers/View.php
@@ -26,6 +26,7 @@ class View extends AbstractProduct
}
$data[] = [
+ 'id' => $attribute->id,
'code' => $attribute->code,
'label' => $attribute->name,
'value' => $value,
diff --git a/packages/Webkul/Product/src/Http/Controllers/ProductController.php b/packages/Webkul/Product/src/Http/Controllers/ProductController.php
index 6d61b4950..4996e6074 100755
--- a/packages/Webkul/Product/src/Http/Controllers/ProductController.php
+++ b/packages/Webkul/Product/src/Http/Controllers/ProductController.php
@@ -11,6 +11,7 @@ use Webkul\Product\Repositories\ProductAttributeValueRepository as ProductAttrib
use Webkul\Attribute\Repositories\AttributeFamilyRepository as AttributeFamily;
use Webkul\Category\Repositories\CategoryRepository as Category;
use Webkul\Inventory\Repositories\InventorySourceRepository as InventorySource;
+use Illuminate\Support\Facades\Storage;
/**
* Product controller
@@ -294,4 +295,20 @@ class ProductController extends Controller
return view($this->_config['view']);
}
}
+
+ /**
+ * Download image or file
+ *
+ * @param int $productId, $attributeId
+ * @return \Illuminate\Http\Response
+ */
+ public function download($productId, $attributeId)
+ {
+ $productAttribute = $this->productAttributeValue->findOneWhere([
+ 'product_id' => $productId,
+ 'attribute_id' => $attributeId
+ ]);
+
+ return Storage::download($productAttribute['text_value']);
+ }
}
\ No newline at end of file
diff --git a/packages/Webkul/Shop/src/Http/Controllers/ProductController.php b/packages/Webkul/Shop/src/Http/Controllers/ProductController.php
index 7dfe61312..5c2eadc43 100755
--- a/packages/Webkul/Shop/src/Http/Controllers/ProductController.php
+++ b/packages/Webkul/Shop/src/Http/Controllers/ProductController.php
@@ -5,6 +5,8 @@ namespace Webkul\Shop\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Webkul\Product\Repositories\ProductRepository as Product;
+use Webkul\Product\Repositories\ProductAttributeValueRepository as ProductAttributeValue;
+use Illuminate\Support\Facades\Storage;
/**
* Product controller
@@ -29,16 +31,26 @@ class ProductController extends Controller
*/
protected $product;
+ /**
+ * ProductAttributeValueRepository object
+ *
+ * @var array
+ */
+ protected $productAttributeValue;
+
/**
* Create a new controller instance.
*
- * @param \Webkul\Product\Repositories\ProductRepository $product
+ * @param \Webkul\Product\Repositories\ProductRepository $product
+ * @param \Webkul\Product\Repositories\ProductAttributeValue $productAttributeValue
* @return void
*/
- public function __construct( Product $product)
+ public function __construct(Product $product, ProductAttributeValue $productAttributeValue)
{
$this->product = $product;
+ $this->productAttributeValue = $productAttributeValue;
+
$this->_config = request('_config');
}
@@ -56,4 +68,20 @@ class ProductController extends Controller
return view($this->_config['view'], compact('product','customer'));
}
+
+ /**
+ * Download image or file
+ *
+ * @param int $productId, $attributeId
+ * @return \Illuminate\Http\Response
+ */
+ public function download($productId, $attributeId)
+ {
+ $productAttribute = $this->productAttributeValue->findOneWhere([
+ 'product_id' => $productId,
+ 'attribute_id' => $attributeId
+ ]);
+
+ return Storage::download($productAttribute['text_value']);
+ }
}
diff --git a/packages/Webkul/Shop/src/Http/routes.php b/packages/Webkul/Shop/src/Http/routes.php
index ebd7e5e31..c575f8a60 100755
--- a/packages/Webkul/Shop/src/Http/routes.php
+++ b/packages/Webkul/Shop/src/Http/routes.php
@@ -115,6 +115,11 @@ Route::group(['middleware' => ['web', 'locale', 'theme', 'currency']], function
'redirect' => 'shop.home.index'
])->name('shop.reviews.store');
+ // Download file or image
+ Route::get('/product/{id}/{attribute_id}', 'Webkul\Shop\Http\Controllers\ProductController@download')->defaults('_config', [
+ 'view' => 'shop.products.index'
+ ])->name('shop.product.file.download');
+
//customer routes starts here
Route::prefix('customer')->group(function () {
// forgot Password Routes
diff --git a/packages/Webkul/Shop/src/Resources/views/products/view/attributes.blade.php b/packages/Webkul/Shop/src/Resources/views/products/view/attributes.blade.php
index 298011a65..202b2ba59 100755
--- a/packages/Webkul/Shop/src/Resources/views/products/view/attributes.blade.php
+++ b/packages/Webkul/Shop/src/Resources/views/products/view/attributes.blade.php
@@ -21,13 +21,13 @@
@endif
@if ($attribute['type'] == 'file' && $attribute['value'])