{"id":449,"date":"2024-04-02T18:50:55","date_gmt":"2024-04-02T18:50:55","guid":{"rendered":"http:\/\/testplads2.anderskisling.dk\/?page_id=449"},"modified":"2026-08-08T21:25:57","modified_gmt":"2026-08-08T19:25:57","slug":"filtest","status":"publish","type":"page","link":"https:\/\/testplads2.anderskisling.dk\/","title":{"rendered":"filtest"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"449\" class=\"elementor elementor-449\">\n\t\t\t\t<div class=\"elementor-element elementor-element-189b81a e-flex e-con-boxed e-con e-parent\" data-id=\"189b81a\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b19a8c0 elementor-widget elementor-widget-spacer\" data-id=\"b19a8c0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1c83cc0 elementor-invisible elementor-widget elementor-widget-image\" data-id=\"1c83cc0\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeIn&quot;}\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"832\" height=\"300\" src=\"https:\/\/testplads2.anderskisling.dk\/wp-content\/uploads\/2026\/08\/maurydesign-logo-kopi-removebg-preview.png\" class=\"attachment-full size-full wp-image-2536\" alt=\"\" srcset=\"https:\/\/testplads2.anderskisling.dk\/wp-content\/uploads\/2026\/08\/maurydesign-logo-kopi-removebg-preview.png 832w, https:\/\/testplads2.anderskisling.dk\/wp-content\/uploads\/2026\/08\/maurydesign-logo-kopi-removebg-preview-300x108.png 300w, https:\/\/testplads2.anderskisling.dk\/wp-content\/uploads\/2026\/08\/maurydesign-logo-kopi-removebg-preview-768x277.png 768w\" sizes=\"(max-width: 832px) 100vw, 832px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c3b0f86 elementor-widget elementor-widget-spacer\" data-id=\"c3b0f86\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6c41d67 elementor-invisible elementor-widget elementor-widget-html\" data-id=\"6c41d67\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeInDown&quot;}\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div id=\"fd-widget\" class=\"fd-wrap\">\n  <div class=\"fd-dropzone\" id=\"fdDropzone\">\n    <svg class=\"fd-icon\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M12 3v12m0-12l-4 4m4-4l4 4M5 17v2a2 2 0 002 2h10a2 2 0 002-2v-2\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg>\n    <p class=\"fd-title\">Tr\u00e6k filer hertil, eller klik for at v\u00e6lge flere<\/p>\n    <p class=\"fd-sub\">Op til 10 GB<\/p>\n    <input type=\"file\" id=\"fdFileInput\" hidden multiple>\n  <\/div>\n\n  <div class=\"fd-filelist\" id=\"fdFileList\"><\/div>\n\n  <div class=\"fd-controls\">\n    <label class=\"fd-label\">* Indtast password (n\u00f8dvendigt)\n      <input type=\"password\" id=\"fdSecret\" placeholder=\"\">\n    <\/label>\n    <label class=\"fd-label\">Linkets varighed:\n      <select id=\"fdExpiry\">\n        <option value=\"1\">1 dag<\/option>\n        <option value=\"3\">3 dage<\/option>\n         <option value=\"5\">5 dage<\/option>\n        <option value=\"7\" selected>7 dage<\/option>\n        <option value=\"14\">14 dage<\/option>\n        <option value=\"30\">30 dage<\/option>\n        <option value=\"never\">Altid<\/option>\n      <\/select>\n    <\/label>\n  <\/div>\n\n  <label class=\"fd-checkbox\">\n    <input type=\"checkbox\" id=\"fdZip\">\n    Send som ZIP-fil <span id=\"fdZipHint\" class=\"fd-zip-hint\" style=\"display:none\">(Alle filer samles i \u00e9n ZIP)<\/span>\n  <\/label>\n\n  <label class=\"fd-label fd-zipname-wrap\" id=\"fdZipNameWrap\" style=\"display:none\">Navn p\u00e5 ZIP-fil\n    <input type=\"text\" id=\"fdZipName\" placeholder=\"indtast navn\">\n  <\/label>\n\n  <button id=\"fdUploadBtn\" class=\"fd-btn fd-upload-btn\" style=\"display:none\">Upload<\/button>\n\n  <p class=\"fd-overall-percent\" id=\"fdOverallPercent\" style=\"display:none\">0%<\/p>\n\n  <div class=\"fd-progress-wrap\" id=\"fdProgressWrap\" style=\"display:none\">\n    <p class=\"fd-filename\" id=\"fdFilename\"><\/p>\n    <div class=\"fd-progress-bar\"><div class=\"fd-progress-fill\" id=\"fdProgressFill\"><\/div><\/div>\n    <p class=\"fd-progress-text\" id=\"fdProgressText\">Uploader\u2026 0%<\/p>\n  <\/div>\n\n  <div class=\"fd-result\" id=\"fdResult\" style=\"display:none\">\n    <p class=\"fd-result-label\">Klar! Send disse links til kunden:<\/p>\n    <div id=\"fdResultList\"><\/div>\n  <\/div>\n\n  <p class=\"fd-error\" id=\"fdError\" style=\"display:none\"><\/p>\n<\/div>\n\n<style>\n  .fd-wrap {\n    max-width: 520px;\n    margin: 0 auto;\n    font-family: inherit;\n    color: #000000;\n  }\n  .fd-dropzone {\n    border: 2px dashed #c9c9cf;\n    border-radius: 28px;\n    padding: 2.5rem 1.5rem;\n    text-align: center;\n    cursor: pointer;\n    transition: border-color .2s, background .2s;\n    background: #fafafa;\n  }\n  .fd-dropzone.fd-drag {\n    border-color: #2b6cb0;\n    background: #eef5fc;\n  }\n  .fd-icon { width: 32px; height: 32px; color: #6b6b76; margin-bottom: .5rem; }\n  .fd-title { font-weight: 600; margin: 0 0 .25rem; font-size: 1rem; }\n  .fd-sub { margin: 0; font-size: .85rem; color: #000000; }\n\n  .fd-filelist {\n    margin-top: .8rem;\n    display: flex;\n    flex-direction: column;\n    gap: .4rem;\n  }\n  .fd-file-row {\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    background: #fafafa;\n    border: 1px solid #eaeaee;\n    border-radius: 28px;\n    padding: .5rem .7rem .5rem calc(.7rem + 6px);\n    font-size: .85rem;\n  }\n  .fd-file-name {\n    overflow: hidden;\n    text-overflow: ellipsis;\n    white-space: nowrap;\n    margin-right: .5rem;\n  }\n  .fd-file-remove {\n    background: none;\n    border: none;\n    color: #b42323;\n    cursor: pointer;\n    font-size: .9rem;\n    font-weight: 700;\n    padding: 0 .3rem;\n    flex-shrink: 0;\n  }\n\n  .fd-controls {\n    display: flex;\n    gap: 1rem;\n    margin-top: 1rem;\n    flex-wrap: wrap;\n  }\n  .fd-label {\n    flex: 1;\n    min-width: 180px;\n    font-size: .8rem;\n    color: #000000;\n    display: flex;\n    flex-direction: column;\n    gap: .3rem;\n  }\n  .fd-label input, .fd-label select {\n     padding: .5rem .7rem .5rem calc(.7rem + 6px);\n    border: 1px solid #d5d5da;\n    border-radius: 80px;\n    font-size: .9rem;\n  }\n  .fd-input-error {\n    border-color: #d64545 !important;\n    box-shadow: 0 0 0 2px rgba(214, 69, 69, .15);\n  }\n\n  .fd-checkbox {\n    display: flex;\n    align-items: center;\n    gap: .5rem;\n    margin-top: 1rem;\n    font-size: .85rem;\n    color: #000000;\n    cursor: pointer;\n  }\n  .fd-checkbox input[type=\"checkbox\"] {\n    width: 19px;\n    height: 19px;\n    accent-color: #D0021B;\n  }\n  .fd-zip-hint { color: #000000; font-size: .78rem; }\n  .fd-zipname-wrap { margin-top: .8rem; }\n\n  .fd-upload-btn {\n    margin-top: 1rem;\n    width: 100%;\n    color: #D0021B;\n    padding: .7rem;\n    font-size: .9rem;\n  }\n\n  .fd-progress-wrap { margin-top: 20px; }\n  .fd-filename {\n    font-size: .85rem;\n    font-weight: 600;\n    color: #000000;\n    margin: 0 0 8px;\n    text-align: center;\n    white-space: nowrap;\n    overflow: hidden;\n    text-overflow: ellipsis;\n  }\n  .fd-progress-bar {\n    height: 8px;\n    background: #eaeaee;\n    border-radius: 999px;\n    overflow: hidden;\n  }\n  .fd-progress-fill {\n    height: 100%;\n    width: 0%;\n    background: #D0021B;\n    transition: width .15s ease;\n  }\n  .fd-progress-text { font-size: .8rem; color: #000000; margin: 8px 0 0 0; text-align: center; }\n  .fd-overall-percent {\n    font-size: 120px;\n    font-weight: 900;\n    color: #D0021B;\n    text-align: center;\n    line-height: 1;\n    margin: 20px 0 -24px;\n  }\n\n  .fd-result {\n    margin-top: 1.2rem;\n    background: #f0f9f0;\n    border: 1px solid #cfe8cf;\n    border-radius: 28px;\n    padding: 1rem;\n  }\n  .fd-result-label { margin: 0 0 .5rem; font-size: .85rem; font-weight: 600; color: #000000; }\n  .fd-result-row { display: flex; gap: .5rem; }\n  .fd-result-row + .fd-result-row { margin-top: .5rem; }\n  .fd-result-row input {\n    flex: 1;\n    padding: .5rem calc(.6rem + 6px) .5rem calc(.6rem + 6px);\n    border: 1px solid #cfe8cf;\n    border-radius: 80px;\n    font-size: 0.85rem;\n    background: #fff;\n  }\n  .fd-btn {\n    background: #D0021B;\n    color: #ffffff;\n    border: none;\n    padding: .5rem calc(.6rem + 6px) .5rem calc(.6rem + 6px);\n    border-radius: 80px;\n    cursor: pointer;\n    font-size: .85rem;\n    font-weight: 600;\n  }\n  .fd-btn:hover { background: #2b2b2b; }\n\n  .fd-error {\n    margin-top: 1rem;\n    color: #b42323;\n    font-size: .85rem;\n    background: #fdecec;\n    border: 1px solid #f3c6c6;\n    border-radius: 28px;\n    padding: .6rem .8rem;\n  }\n<\/style>\n\n<script>\n(function () {\n  \/\/ === RET DENNE LINJE til din egen server-URL ===\n  const API_BASE = \"https:\/\/testplads2.anderskisling.dk\/filedrop\/api\";\n  const CHUNK_SIZE = 5 * 1024 * 1024; \/\/ 5 MB pr. chunk\n\n  const dropzone   = document.getElementById('fdDropzone');\n  const fileInput  = document.getElementById('fdFileInput');\n  const fileListEl = document.getElementById('fdFileList');\n  const uploadBtn  = document.getElementById('fdUploadBtn');\n  const progWrap   = document.getElementById('fdProgressWrap');\n  const progFill   = document.getElementById('fdProgressFill');\n  const progText   = document.getElementById('fdProgressText');\n  const resultBox  = document.getElementById('fdResult');\n  const errorBox   = document.getElementById('fdError');\n  const secretInput = document.getElementById('fdSecret');\n  const expirySelect = document.getElementById('fdExpiry');\n  const zipCheckbox = document.getElementById('fdZip');\n  const zipHint = document.getElementById('fdZipHint');\n  const zipNameWrap = document.getElementById('fdZipNameWrap');\n  const zipNameInput = document.getElementById('fdZipName');\n  const filenameLabel = document.getElementById('fdFilename');\n\n  zipCheckbox.addEventListener('change', () => {\n    zipNameWrap.style.display = zipCheckbox.checked ? 'flex' : 'none';\n  });\n\n  let selectedFiles = [];\n  let overallTotalBytes = 0;\n  let overallSentBytes = 0;\n  const overallPercentEl = document.getElementById('fdOverallPercent');\n\n  function bumpOverall(bytes) {\n    overallSentBytes = Math.min(overallTotalBytes, overallSentBytes + bytes);\n    const pct = overallTotalBytes > 0 ? Math.round((overallSentBytes \/ overallTotalBytes) * 100) : 0;\n    overallPercentEl.textContent = pct + '%';\n  }\n\n  secretInput.addEventListener('input', () => {\n    errorBox.style.display = 'none';\n    secretInput.classList.remove('fd-input-error');\n  });\n\n  dropzone.addEventListener('click', () => fileInput.click());\n  dropzone.addEventListener('dragover', e => { e.preventDefault(); dropzone.classList.add('fd-drag'); });\n  dropzone.addEventListener('dragleave', () => dropzone.classList.remove('fd-drag'));\n  dropzone.addEventListener('drop', e => {\n    e.preventDefault();\n    dropzone.classList.remove('fd-drag');\n    if (e.dataTransfer.files.length) addFiles(e.dataTransfer.files);\n  });\n  fileInput.addEventListener('change', e => {\n    if (e.target.files.length) addFiles(e.target.files);\n    fileInput.value = ''; \/\/ s\u00e5 samme fil kan v\u00e6lges igen senere\n  });\n\n  function addFiles(fileList) {\n    errorBox.style.display = 'none';\n    resultBox.style.display = 'none';\n    Array.from(fileList).forEach(f => selectedFiles.push(f));\n    renderFileList();\n  }\n\n  function renderFileList() {\n    fileListEl.innerHTML = '';\n    selectedFiles.forEach((file, idx) => {\n      const row = document.createElement('div');\n      row.className = 'fd-file-row';\n      row.innerHTML = `<span class=\"fd-file-name\">${file.name}<\/span>`;\n      const removeBtn = document.createElement('button');\n      removeBtn.className = 'fd-file-remove';\n      removeBtn.textContent = '\u2715';\n      removeBtn.addEventListener('click', () => {\n        selectedFiles.splice(idx, 1);\n        renderFileList();\n      });\n      row.appendChild(removeBtn);\n      fileListEl.appendChild(row);\n    });\n\n    uploadBtn.style.display = selectedFiles.length ? 'block' : 'none';\n    zipHint.style.display = selectedFiles.length > 1 ? 'inline' : 'none';\n  }\n\n  function showError(msg) {\n    errorBox.textContent = msg;\n    errorBox.style.display = 'block';\n  }\n\n  uploadBtn.addEventListener('click', () => {\n    if (!selectedFiles.length) return;\n    if (!secretInput.value) {\n      showError('Indtast dit uploadkodeord f\u00f8rst.');\n      secretInput.classList.add('fd-input-error');\n      secretInput.focus();\n      return;\n    }\n    secretInput.classList.remove('fd-input-error');\n    startUpload();\n  });\n\n  async function startUpload() {\n    errorBox.style.display = 'none';\n    resultBox.style.display = 'none';\n    document.getElementById('fdResultList').innerHTML = '';\n    uploadBtn.disabled = true;\n\n    overallTotalBytes = selectedFiles.reduce((sum, f) => sum + f.size, 0);\n    overallSentBytes = 0;\n    overallPercentEl.textContent = '0%';\n    overallPercentEl.style.display = 'block';\n\n    const wantZip = zipCheckbox.checked;\n    const isMultiZip = wantZip && selectedFiles.length > 1;\n\n    if (isMultiZip) {\n      \/\/ Alle filer samles i \u00e9n ZIP, \u00e9t link\n      const url = await uploadBatch(selectedFiles);\n      if (url) {\n        addResultRow('Samlet ZIP-fil', url);\n        resultBox.style.display = 'block';\n        selectedFiles = [];\n        renderFileList();\n      }\n    } else {\n      \/\/ Hver fil uploades for sig, hver f\u00e5r sit eget link\n      for (let f = 0; f < selectedFiles.length; f++) {\n        const label = selectedFiles.length > 1 ? `(${f + 1}\/${selectedFiles.length}) ` : '';\n        const url = await handleFile(selectedFiles[f], label, wantZip);\n        if (!url) { uploadBtn.disabled = false; return; }\n        addResultRow(selectedFiles[f].name, url);\n      }\n      resultBox.style.display = 'block';\n      selectedFiles = [];\n      renderFileList();\n    }\n\n    overallPercentEl.style.display = 'none';\n    uploadBtn.disabled = false;\n  }\n\n  function addResultRow(name, url) {\n    const row = document.createElement('div');\n    row.className = 'fd-result-row';\n    row.innerHTML = `\n      <input type=\"text\" readonly value=\"${url}\">\n      <button class=\"fd-btn\">Kopi\u00e9r<\/button>\n    `;\n    row.querySelector('button').addEventListener('click', () => {\n      const input = row.querySelector('input');\n      input.select();\n      document.execCommand('copy');\n      const btn = row.querySelector('button');\n      btn.textContent = 'Kopieret!';\n      setTimeout(() => (btn.textContent = 'Kopi\u00e9r'), 1500);\n    });\n    document.getElementById('fdResultList').appendChild(row);\n  }\n\n  \/\/ --- Upload af \u00e9n enkelt fil (evt. med egen zip) ---\n  async function handleFile(file, label, wantZip) {\n    const fileId = 'f' + Date.now() + Math.random().toString(36).slice(2, 8);\n    const totalChunks = Math.ceil(file.size \/ CHUNK_SIZE);\n    progWrap.style.display = 'block';\n    filenameLabel.textContent = label + file.name;\n\n    for (let i = 0; i < totalChunks; i++) {\n      const chunk = file.slice(i * CHUNK_SIZE, i * CHUNK_SIZE + CHUNK_SIZE);\n\n      const form = new FormData();\n      form.append('chunk', chunk);\n      form.append('fileId', fileId);\n      form.append('chunkIndex', i);\n      form.append('totalChunks', totalChunks);\n      form.append('fileName', file.name);\n      form.append('expiresDays', expirySelect.value);\n      form.append('zip', wantZip ? '1' : '0');\n      form.append('zipName', zipNameInput.value.trim());\n      form.append('secret', secretInput.value);\n\n      let res;\n      try {\n        res = await fetch(API_BASE + '\/upload.php', { method: 'POST', body: form });\n      } catch (err) {\n        showError('Kunne ikke forbinde til serveren. Tjek API_BASE i widget-koden.');\n        return null;\n      }\n      const data = await res.json();\n      if (!data.ok) { showError('Fejl: ' + (data.error || 'ukendt fejl')); return null; }\n\n      bumpOverall(chunk.size);\n\n      const pct = Math.round(((i + 1) \/ totalChunks) * 100);\n      progFill.style.width = pct + '%';\n      progText.textContent = data.complete ? 'F\u00e6rdig! 100%' : ('Uploader\u2026 ' + pct + '%');\n\n      if (data.complete) {\n        progWrap.style.display = 'none';\n        return data.downloadUrl;\n      }\n    }\n  }\n\n  \/\/ --- Upload af flere filer samlet til \u00c9N zip p\u00e5 serveren ---\n  async function uploadBatch(files) {\n    const batchId = 'b' + Date.now() + Math.random().toString(36).slice(2, 8);\n\n    for (let f = 0; f < files.length; f++) {\n      const file = files[f];\n      const fileId = batchId + '_' + f;\n      const totalChunks = Math.ceil(file.size \/ CHUNK_SIZE);\n      progWrap.style.display = 'block';\n      filenameLabel.textContent = `(${f + 1}\/${files.length}) ${file.name}`;\n\n      for (let i = 0; i < totalChunks; i++) {\n        const chunk = file.slice(i * CHUNK_SIZE, i * CHUNK_SIZE + CHUNK_SIZE);\n\n        const form = new FormData();\n        form.append('chunk', chunk);\n        form.append('fileId', fileId);\n        form.append('chunkIndex', i);\n        form.append('totalChunks', totalChunks);\n        form.append('fileName', file.name);\n        form.append('expiresDays', expirySelect.value);\n        form.append('secret', secretInput.value);\n        form.append('batchId', batchId);\n        form.append('fileIndex', f);\n        form.append('totalFiles', files.length);\n        form.append('zipName', zipNameInput.value.trim());\n\n        let res;\n        try {\n          res = await fetch(API_BASE + '\/upload.php', { method: 'POST', body: form });\n        } catch (err) {\n          showError('Kunne ikke forbinde til serveren. Tjek API_BASE i widget-koden.');\n          return null;\n        }\n        const data = await res.json();\n        if (!data.ok) { showError('Fejl: ' + (data.error || 'ukendt fejl')); return null; }\n\n        bumpOverall(chunk.size);\n\n        const filePct = Math.round(((i + 1) \/ totalChunks) * 100);\n        progFill.style.width = filePct + '%';\n        progText.textContent = `Uploader fil ${f + 1}\/${files.length}\u2026 ${filePct}%`;\n\n        if (data.complete && data.batchComplete) {\n          progWrap.style.display = 'none';\n          return data.downloadUrl;\n        }\n      }\n    }\n  }\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8073973 elementor-widget elementor-widget-spacer\" data-id=\"8073973\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e56f657 elementor-align-center elementor-invisible elementor-widget elementor-widget-button\" data-id=\"e56f657\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeInUp&quot;}\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"http:\/\/testplads2.anderskisling.dk\/filedrop\/api\/links.php\" target=\"_blank\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-icon\">\n\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-cloud-upload-alt\" viewBox=\"0 0 640 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zM393.4 288H328v112c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V288h-65.4c-14.3 0-21.4-17.2-11.3-27.3l105.4-105.4c6.2-6.2 16.4-6.2 22.6 0l105.4 105.4c10.1 10.1 2.9 27.3-11.3 27.3z\"><\/path><\/svg>\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Se alle filer <\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f1f2dfc elementor-widget elementor-widget-spacer\" data-id=\"f1f2dfc\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Tr\u00e6k filer hertil, eller klik for at v\u00e6lge flere Op til 10 GB * Indtast password (n\u00f8dvendigt) Linkets varighed: 1 dag3 dage5 dage7 dage14 dage30 dageAltid Send som ZIP-fil (Alle filer samles i \u00e9n ZIP) Navn p\u00e5 ZIP-fil Upload 0% Uploader\u2026 0% Klar! Send disse links til kunden: Se alle filer<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"inline_featured_image":false,"_kad_post_transparent":"","_kad_post_title":"hide","_kad_post_layout":"fullwidth","_kad_post_sidebar_id":"","_kad_post_content_style":"unboxed","_kad_post_vertical_padding":"hide","_kad_post_feature":"hide","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"footnotes":""},"class_list":["post-449","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/testplads2.anderskisling.dk\/index.php\/wp-json\/wp\/v2\/pages\/449","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/testplads2.anderskisling.dk\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/testplads2.anderskisling.dk\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/testplads2.anderskisling.dk\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/testplads2.anderskisling.dk\/index.php\/wp-json\/wp\/v2\/comments?post=449"}],"version-history":[{"count":15,"href":"https:\/\/testplads2.anderskisling.dk\/index.php\/wp-json\/wp\/v2\/pages\/449\/revisions"}],"predecessor-version":[{"id":2860,"href":"https:\/\/testplads2.anderskisling.dk\/index.php\/wp-json\/wp\/v2\/pages\/449\/revisions\/2860"}],"wp:attachment":[{"href":"https:\/\/testplads2.anderskisling.dk\/index.php\/wp-json\/wp\/v2\/media?parent=449"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}