diff --git a/src/main/java/caosdb/server/scripting/ServerSideScriptingCaller.java b/src/main/java/caosdb/server/scripting/ServerSideScriptingCaller.java
index 6fa5d1a479df47c20d9d3a5d3a7134e1c0898ad1..75cd819d749f0fc425083a67e3a5c1d7f362de7d 100644
--- a/src/main/java/caosdb/server/scripting/ServerSideScriptingCaller.java
+++ b/src/main/java/caosdb/server/scripting/ServerSideScriptingCaller.java
@@ -165,8 +165,11 @@ public class ServerSideScriptingCaller {
       if (f.getPath() == null || f.getPath().isEmpty()) {
         throw new CaosDBException("The path must not be null or empty!");
       }
-      caosdb.server.utils.FileUtils.createSymlink(
-          getUploadFilesDir().toPath().resolve(f.getPath()).toFile(), f.getFile());
+      File link = getUploadFilesDir().toPath().resolve(f.getPath()).toFile();
+      if (!link.getParentFile().exists()) {
+        link.getParentFile().mkdirs();
+      }
+      caosdb.server.utils.FileUtils.createSymlink(link, f.getFile());
     }
   }