Safari downloads as .dms files. #490

Closed
opened 2026-02-04 20:33:14 +03:00 by OVERLORD · 7 comments
Owner

Originally created by @dansherman on GitHub (Nov 2, 2017).

Originally assigned to: @ssddanbrown on GitHub.

For Bug Reports

  • BookStack Version: BookStack v0.18.4
  • PHP Version: PHP 7.0.22-0ubuntu0.16.04.1
  • MySQL Version: mysql Ver 14.14 Distrib 5.7.20, for Linux (x86_64) using EditLine wrapper
Expected Behavior

Exports should be downloaded with the correct file extension (.pdf, .html, .txt)

Current Behavior

Exports download as page.dms, html.dms, or plaintext.dms when using Safari Version 11.0 (12604.1.38.1.7). If I change the extension after the file is downloaded, it opens correctly.

It also exports correctly using Chrome.

Steps to Reproduce

Install using the Ubuntu 16.04 script.
Create a new book/page.
Click any of the export links.

Originally created by @dansherman on GitHub (Nov 2, 2017). Originally assigned to: @ssddanbrown on GitHub. ### For Bug Reports * BookStack Version: BookStack v0.18.4 * PHP Version: PHP 7.0.22-0ubuntu0.16.04.1 * MySQL Version: mysql Ver 14.14 Distrib 5.7.20, for Linux (x86_64) using EditLine wrapper ##### Expected Behavior Exports should be downloaded with the correct file extension (.pdf, .html, .txt) ##### Current Behavior Exports download as page.dms, html.dms, or plaintext.dms when using Safari Version 11.0 (12604.1.38.1.7). If I change the extension after the file is downloaded, it opens correctly. It also exports correctly using Chrome. ##### Steps to Reproduce Install using the Ubuntu 16.04 script. Create a new book/page. Click any of the export links.
OVERLORD added the 🐛 Bug label 2026-02-04 20:33:14 +03:00
Author
Owner

@ssddanbrown commented on GitHub (Nov 11, 2017):

Was hoping I could replicate this on an iPad but I unfortunately cannot.

Interestingly, Looking at this page it appears this could be down to a bug in safari.

This could probably be worked-around by adding file extensions to the export urls but that has a chance of causing issues where different server rules have be set up for static file types.

Think the best course of action here is to wait for apple to fix safari unless anyone can confirm it is a BookStack issue.

@ssddanbrown commented on GitHub (Nov 11, 2017): Was hoping I could replicate this on an iPad but I unfortunately cannot. Interestingly, [Looking at this page](https://forums.macrumors.com/threads/safari-erroneously-adding-dms-extension-to-downloads.2080108/) it appears this could be down to a bug in safari. This could probably be worked-around by adding file extensions to the export urls but that has a chance of causing issues where different server rules have be set up for static file types. Think the best course of action here is to wait for apple to fix safari unless anyone can confirm it is a BookStack issue.
Author
Owner

@tomasjay commented on GitHub (Aug 11, 2018):

@ssddanbrown: Hi Dan, I can confirm that the issue still exists when using Safari on a Mac, and that the downloaded file names are correct when using FireFox. However, the download of files from other apps or websites works as expected – even in Safari. Do you have any news on this?

Cheers, Thomas

Describe the bug
When I export a page my installation, the downloaded file is named "html.dms", "plaintext.dms" and "pdf.dms" depending on the export file type. When I rename the downloaded file using the correct suffix, it opens up and is properly displayed.

Steps To Reproduce
Steps to reproduce the behavior:

  1. Go to any page in any book or chapter
  2. Click on export, select file type.
  3. Look at the file in your download folder.

Expected behavior
The downloaded file should be named "page title.file type" e.g. "foo.pdf"

Your Configuration (please complete the following information):

  • Exact BookStack Version (Found in settings): v0.23.0
  • PHP Version: php -v returns the following: PHP 7.0.30-0ubuntu0.16.04.1 (cli) ( NTS )
  • Client system: Mac OS Sierra 10.12.6
  • Browser: Safari Version 11.1.1

Additional context
At the moment users can easily work around as described above.

@tomasjay commented on GitHub (Aug 11, 2018): @ssddanbrown: Hi Dan, I can confirm that the issue still exists when using Safari on a Mac, and that the downloaded file names are correct when using FireFox. However, the download of files from other apps or websites works as expected – even in Safari. Do you have any news on this? Cheers, Thomas **Describe the bug** When I export a page my installation, the downloaded file is named "html.dms", "plaintext.dms" and "pdf.dms" depending on the export file type. When I rename the downloaded file using the correct suffix, it opens up and is properly displayed. **Steps To Reproduce** Steps to reproduce the behavior: 1. Go to any page in any book or chapter 2. Click on export, select file type. 3. Look at the file in your download folder. **Expected behavior** The downloaded file should be named "page title.file type" e.g. "foo.pdf" **Your Configuration (please complete the following information):** - Exact BookStack Version (Found in settings): v0.23.0 - PHP Version: php -v returns the following: PHP 7.0.30-0ubuntu0.16.04.1 (cli) ( NTS ) - Client system: Mac OS Sierra 10.12.6 - Browser: Safari Version 11.1.1 **Additional context** At the moment users can easily work around as described above.
Author
Owner

@ajvolin commented on GitHub (Sep 22, 2018):

@tomasjay I ran into this same issue recently.

The content disposition headers are missing a closing double quote after the file extension and Safari bugs out. The issue is easily resolved by modifying the content disposition headers for each export method in the following controllers:

v0.22-dev

app/Http/Controllers/BookController.php

Change line 304 from
'Content-Disposition' => 'attachment; filename="' . $bookSlug . '.pdf'
To
'Content-Disposition' => 'attachment; filename="' . $bookSlug . '.pdf"'

Change line 319 from
'Content-Disposition' => 'attachment; filename="' . $bookSlug . '.html'
To
'Content-Disposition' => 'attachment; filename="' . $bookSlug . '.html"'

Change line 334 from
'Content-Disposition' => 'attachment; filename="' . $bookSlug . '.txt'
To
'Content-Disposition' => 'attachment; filename="' . $bookSlug . '.txt"'

app/Http/Controllers/ChapterController.php

Change line 255 from
'Content-Disposition' => 'attachment; filename="' . $chapterSlug . '.pdf'
To
'Content-Disposition' => 'attachment; filename="' . $chapterSlug . '.pdf"'

Change line 271 from
'Content-Disposition' => 'attachment; filename="' . $chapterSlug . '.html'
To
'Content-Disposition' => 'attachment; filename="' . $chapterSlug . '.html"'

Change line 287 from
'Content-Disposition' => 'attachment; filename="' . $chapterSlug . '.txt'
To
'Content-Disposition' => 'attachment; filename="' . $chapterSlug . '.txt"'

app/Http/Controllers/PageController.php
Change line 505 from
'Content-Disposition' => 'attachment; filename="' . $pageSlug . '.pdf'
To
'Content-Disposition' => 'attachment; filename="' . $pageSlug . '.pdf"'

Change line 522 from
'Content-Disposition' => 'attachment; filename="' . $pageSlug . '.html'
To
'Content-Disposition' => 'attachment; filename="' . $pageSlug . '.html"'

Change line 538 from
'Content-Disposition' => 'attachment; filename="' . $pageSlug . '.txt'
To
'Content-Disposition' => 'attachment; filename="' . $pageSlug . '.txt"'

@ajvolin commented on GitHub (Sep 22, 2018): @tomasjay I ran into this same issue recently. The content disposition headers are missing a closing double quote after the file extension and Safari bugs out. The issue is easily resolved by modifying the content disposition headers for each export method in the following controllers: v0.22-dev app/Http/Controllers/BookController.php Change line **304** from 'Content-Disposition' => 'attachment; filename="' . $bookSlug . '.pdf' To 'Content-Disposition' => 'attachment; filename="' . $bookSlug . '.pdf"' Change line **319** from 'Content-Disposition' => 'attachment; filename="' . $bookSlug . '.html' To 'Content-Disposition' => 'attachment; filename="' . $bookSlug . '.html"' Change line **334** from 'Content-Disposition' => 'attachment; filename="' . $bookSlug . '.txt' To 'Content-Disposition' => 'attachment; filename="' . $bookSlug . '.txt"' app/Http/Controllers/ChapterController.php Change line **255** from 'Content-Disposition' => 'attachment; filename="' . $chapterSlug . '.pdf' To 'Content-Disposition' => 'attachment; filename="' . $chapterSlug . '.pdf"' Change line **271** from 'Content-Disposition' => 'attachment; filename="' . $chapterSlug . '.html' To 'Content-Disposition' => 'attachment; filename="' . $chapterSlug . '.html"' Change line **287** from 'Content-Disposition' => 'attachment; filename="' . $chapterSlug . '.txt' To 'Content-Disposition' => 'attachment; filename="' . $chapterSlug . '.txt"' app/Http/Controllers/PageController.php Change line **505** from 'Content-Disposition' => 'attachment; filename="' . $pageSlug . '.pdf' To 'Content-Disposition' => 'attachment; filename="' . $pageSlug . '.pdf"' Change line **522** from 'Content-Disposition' => 'attachment; filename="' . $pageSlug . '.html' To 'Content-Disposition' => 'attachment; filename="' . $pageSlug . '.html"' Change line **538** from 'Content-Disposition' => 'attachment; filename="' . $pageSlug . '.txt' To 'Content-Disposition' => 'attachment; filename="' . $pageSlug . '.txt"'
Author
Owner

@ssddanbrown commented on GitHub (Sep 22, 2018):

Great find @ajvolin. Thank you very much.

Just deployed a fix in 5c2e3f4e56. Will be in the next release.

@ssddanbrown commented on GitHub (Sep 22, 2018): Great find @ajvolin. Thank you very much. Just deployed a fix in 5c2e3f4e565b6e7626e1ca5aa83d6ebe4e56e940. Will be in the next release.
Author
Owner

@tomasjay commented on GitHub (Oct 12, 2018):

Great find @ajvolin. Thank you very much.

Just deployed a fix in 5c2e3f4. Will be in the next release.

Hi @ssddanbrown , I can confirm that with v0.24.1 the behaviour on Safari is as expected.

Thanks a lot!

@tomasjay commented on GitHub (Oct 12, 2018): > Great find @ajvolin. Thank you very much. > > Just deployed a fix in [5c2e3f4](https://github.com/BookStackApp/BookStack/commit/5c2e3f4e565b6e7626e1ca5aa83d6ebe4e56e940). Will be in the next release. Hi @ssddanbrown , I can confirm that with v0.24.1 the behaviour on Safari is as expected. Thanks a lot!
Author
Owner

@estoimenova commented on GitHub (Nov 14, 2018):

Hi, I want to ask if any of you have faced the following issue: Safari automatically downloads a dtag.dms file while opening Linkedin? Safari version is 12.0. I am curious what could be the reason?

Thank you very much in advance!

@estoimenova commented on GitHub (Nov 14, 2018): Hi, I want to ask if any of you have faced the following issue: Safari automatically downloads a dtag.dms file while opening Linkedin? Safari version is 12.0. I am curious what could be the reason? Thank you very much in advance!
Author
Owner

@OutsourcedGuru commented on GitHub (Jul 25, 2019):

Indeed. I just visited LinkedIn today and—for the first time ever—it automatically downloaded a dtag.dms file to my Downloads. The file is zero bytes in length so it's unlikely to be anything destructive at this length.

This appears in the source HTML and presumably is the cause.

<img id="bizo-pixel" width="1" height="1" alt="" style="display:none" src="/csp/dtag?p=10">

Visiting the link https://www.linkedin.com/csp/dtag?p=10 redirects to https://dc.ads.linkedin.com/collect/?pid=6883&li_id=AgAAGuMDAc8sAYxUF6ddX2P4vU5NmhoyOSeRoM3dKA&li_oo=false&li_update=false&li_active=true&max_age=86400&fmt=gif and delivers a 1x1 GIF called collect.gif.

So it's possible that Safari sees this behavior as questionable tracking and is trying to deny it.

I just added an entry to my MacBook's /private/etc/hosts file:

127.0.0.1    dc.ads.linkedin.com

In theory, this will prevent LinkedIn's ad server from being reached. And this then should make that weird dtag.dms download go away.

@OutsourcedGuru commented on GitHub (Jul 25, 2019): Indeed. I just visited LinkedIn today and—for the first time ever—it automatically downloaded a `dtag.dms` file to my Downloads. The file is zero bytes in length so it's unlikely to be anything destructive at this length. This appears in the source HTML and presumably is the cause. ``` <img id="bizo-pixel" width="1" height="1" alt="" style="display:none" src="/csp/dtag?p=10"> ``` Visiting the link `https://www.linkedin.com/csp/dtag?p=10` redirects to `https://dc.ads.linkedin.com/collect/?pid=6883&li_id=AgAAGuMDAc8sAYxUF6ddX2P4vU5NmhoyOSeRoM3dKA&li_oo=false&li_update=false&li_active=true&max_age=86400&fmt=gif` and delivers a 1x1 GIF called `collect.gif`. So it's possible that Safari sees this behavior as questionable tracking and is trying to deny it. I just added an entry to my MacBook's `/private/etc/hosts` file: ``` 127.0.0.1 dc.ads.linkedin.com ``` In theory, this will prevent LinkedIn's ad server from being reached. And this then should make that weird `dtag.dms` download go away.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/BookStack#490