Search code examples
mediawikisynologymediawiki-extensionssemantic-mediawiki

Mediawiki: Links to open local files on the server doesn't work


I have MediaWiki installed on a synology server. I would like to create a link on the wiki that would allow opening of files on the same server.

Here are the steps I did to achieve this:

  • Added $wgUrlProtocols[] = "file://"; in LocalSettings.php
  • A test file on the server: file://myServerName/path/to/file/test.txt. Putting this URL in my chrome browser directly opens the file.
  • Create a page in MediaWiki with a link to this file using [[file://myServerName/path/to/file/test.txt]]

When I click on the generated wiki page, nothing happens. However when I hover on top of the link, it shows the correct URL.

Can someone please point out what additional steps I need to do to get this working?


Solution

  • The file:// protocol points to the file on your computer. I'm not fully sure, but I think you cannot use it to retrieve file from a different machine (read my comment below about samba shares).

    From quick research it looks like Chrome browser blocks requests with file:// protocol, But browsers like IE should allow you to open those files. It is done because of security reasons so the malicious site cannot open local files without your permission. You might bypass that by installing a special plugin in Chrome (look for Enable file links)

    Instead of using file protocol, make those files available via Synology WebStation, and then create links that point to the file via webstation (not via path on the server). With that approach, links attached on your MediaWiki pages will work as those will be regular links.

    If you don't use the WebStation, you might also try with ftp:// links (use the FTP service), or link to samba shares - that's where the file:// protocol might work, but again - I'm not sure and I cannot test it as I do not use windows.

    I think that the safest/easiest/fastest way is to expose those files via WebStation.

    Source: https://en.wikipedia.org/wiki/File_URI_scheme

    The file URI scheme is a URI scheme defined in RFC 8089, typically used to retrieve files from within one's own computer.