Skip to content

Commit be90baf

Browse files
authored
Fix Asset exists check for files within folders when drag and dropping. (#725)
* Fix Asset exists check for files within folders when drag and droppping. * fix path formation * change code flow for reading dir for request. * use default arg
1 parent 6e1d706 commit be90baf

File tree

2 files changed

+15
-2
lines changed

2 files changed

+15
-2
lines changed

public/js/pimcore/asset/tree.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -277,7 +277,8 @@
277277
url: Routing.generate('pimcore_admin_asset_exists'),
278278
params: {
279279
parentId: parentNode.id,
280-
filename: file.name
280+
filename: file.name,
281+
dir: path
281282
},
282283
async: false,
283284
success: function (response) {

src/Controller/Admin/Asset/AssetController.php

+13-1
Original file line numberDiff line numberDiff line change
@@ -401,8 +401,20 @@ public function existsAction(Request $request): JsonResponse
401401
{
402402
$parentAsset = \Pimcore\Model\Asset::getById((int)$request->get('parentId'));
403403

404+
$dir = $request->get('dir', '');
405+
if ($dir){
406+
// this is for uploading folders with Drag&Drop
407+
// param "dir" contains the relative path of the file
408+
if (strpos($dir, '..') !== false) {
409+
throw new \Exception('not allowed');
410+
}
411+
$dir = '/' . trim($dir, '/ ');
412+
}
413+
414+
$assetPath = $parentAsset->getRealFullPath() . $dir . '/' . $request->get('filename');
415+
404416
return new JsonResponse([
405-
'exists' => Asset\Service::pathExists($parentAsset->getRealFullPath().'/'.$request->get('filename')),
417+
'exists' => Asset\Service::pathExists($assetPath),
406418
]);
407419
}
408420

0 commit comments

Comments
 (0)