diff --git a/src/dynamic/incidentattachments.php b/src/dynamic/incidentattachments.php
new file mode 100644
index 0000000..2402688
--- /dev/null
+++ b/src/dynamic/incidentattachments.php
@@ -0,0 +1,107 @@
+<?php
+require_once(__DIR__."/../core.php");
+security::checkType(security::WORKER, security::METHOD_NOTFOUND);
+security::checkWorkerUIEnabled();
+
+if (!isset($_GET["id"])) {
+  security::notFound();
+}
+
+$id = (int)$_GET["id"];
+
+$incident = incidents::get($id, true);
+if ($incident === false) security::notFound();
+
+$isAdmin = security::isAllowed(security::ADMIN);
+$status = incidents::getStatus($incident);
+
+$cantedit = in_array($status, incidents::$cannotEditCommentsStates);
+
+if (!$isAdmin) incidents::checkIncidentIsFromPerson($incident["id"]);
+?>
+
+<dynscript>
+document.querySelectorAll(".deleteattachment").forEach(el => {
+  el.addEventListener("click", e => {
+    dynDialog.load("dynamic/deleteattachment.php?id="+el.getAttribute("data-id")+"&name="+el.getAttribute("data-name")<?=(isset($_GET["continue"]) ? '+"&continue='.security::htmlsafe(urlencode($_GET["continue"])).'"' : '')?>);
+  });
+});
+</dynscript>
+
+<style>
+#dynDialog {
+  max-width: 380px;
+  width: auto;
+}
+
+.addAttachmentForm {
+  display: flex;
+  align-items: center;
+}
+
+.addAttachmentForm input[type="file"] {
+  width: 100%;
+  height: min-content;
+}
+
+.addAttachmentForm button {
+  min-width: min-content;
+}
+
+.attachmentDescription {
+  margin-top: 16px;
+}
+
+.attachmentDescription code {
+  font-size: 12px;
+}
+</style>
+
+<h4 class="mdl-dialog__title">Archivos adjuntos</h4>
+<div class="mdl-dialog__content">
+  <?php
+  $attachments = incidents::getAttachmentsFromIncident($incident);
+
+  if ($attachments === false) {
+    echo "<p>Ha ocurrido un problema cargando los archivos adjuntos.</p>";
+  } elseif (!count($attachments)) {
+    echo "<p>No hay ningún archivo adjunto</p>";
+  } else {
+    echo '<ul class="mdl-list">';
+    foreach ($attachments as $attachment) {
+      $extension = files::getFileExtension($attachment);
+      $icon = files::$mimeTypesIcons[$extension] ?? "broken_image";
+      $title = files::$readableMimeTypes[$extension] ?? "Documento desconocido";
+      echo '<li class="mdl-list__item">
+        <span class="mdl-list__item-primary-content">
+          <i class="material-icons mdl-list__item-icon">'.security::htmlsafe($icon).'</i>
+          '.security::htmlsafe($title).'
+        </span>
+        <a href="incidentattachment.php?id='.(int)$incident["id"].'&name='.security::htmlsafe($attachment).'" target="_blank" class="mdl-list__item-secondar-action mdl-button mdl-js-button mdl-button--icon mdl-js-ripple-effect">
+          <i class="material-icons">open_in_new</i>
+        </a>'.
+        ($cantedit ? '' : '<button class="mdl-list__item-secondar-action mdl-button mdl-js-button mdl-button--icon mdl-js-ripple-effect deleteattachment" data-id="'.(int)$id.'" data-name="'.security::htmlsafe($attachment).'">
+          <i class="material-icons">delete</i>
+        </button>').'
+      </li>';
+    }
+    echo "</ul>";
+  }
+
+  if (!$cantedit) {
+    ?>
+    <h5>Añade un archivo adjunto</h5>
+    <form action="doaddincidentattachment.php" method="POST" enctype="multipart/form-data" class="addAttachmentForm">
+      <input type="hidden" name="id" value="<?=(int)$incident["id"]?>">
+      <?php visual::addContinueInput(); ?>
+      <input type="file" name="file" accept="<?=security::htmlsafe(files::getAcceptAttribute())?>" required>
+      <button class="mdl-button mdl-js-button mdl-js-ripple-effect mdl-button--raised">Subir</button>
+    </form>
+    <div class="attachmentDescription">Se aceptan archivos de hasta <?=security::htmlsafe(files::READABLE_MAX_SIZE)?> con los siguientes formatos: <code><?=security::htmlsafe(files::getAcceptAttribute(true))?></code></div>
+    <?php
+  }
+  ?>
+</div>
+<div class="mdl-dialog__actions">
+  <button data-dyndialog-close class="mdl-button mdl-js-button mdl-js-ripple-effect mdl-button--accent">Cerrar</button>
+</div>
