Cannot open local file - Chrome: Not allowed to load local resource
We use Chrome a lot in the classroom and it is a must to working with local files.
What we have been using is "Web Server for Chrome". You start it up, choose the folder wishing to work with and go to URL (like 127.0.0.1:port you chose)
It is a simple server and cannot use PHP but for simple work, might be your solution:
https://chrome.google.com/webstore/detail/web-server-for-chrome/ofhbbkphhbklhfoeikjpcbhemlocgigb
File URL Not allowed to load local resource in the Internet Browser
Now we know what the actual error is can formulate an answer.
Not allowed to load local resource
is a Security exception built into Chrome and other modern browsers. The wording may be different but in some way shape or form they all have security exceptions in place to deal with this scenario.
In the past you could override certain settings or apply certain flags such as
--disable-web-security --allow-file-access-from-files --allow-file-access
in Chrome (See https://stackoverflow.com/a/22027002/692942)
It's there for a reason
At this point though it's worth pointing out that these security exceptions exist for good reason and trying to circumvent them isn't the best idea.
There is another way
As you have access to Classic ASP already you could always build a intermediary page that serves the network based files. You do this using a combination of the ADODB.Stream
object and the Response.BinaryWrite()
method. Doing this ensures your network file locations are never exposed to the client and due to the flexibility of the script it can be used to load resources from multiple locations and multiple file types.
Here is a basic example ("getfile.asp"):
<%
Option Explicit
Dim s, id, bin, file, filename, mime
id = Request.QueryString("id")
'id can be anything just use it as a key to identify the
'file to return. It could be a simple Case statement like this
'or even pulled from a database.
Select Case id
Case "TESTFILE1"
'The file, mime and filename can be built-up anyway they don't
'have to be hard coded.
file = "\\server\share\Projecten\Protocollen\346\Uitvoeringsoverzicht.xls"
mime = "application/vnd.ms-excel"
'Filename you want to display when downloading the resource.
filename = "Uitvoeringsoverzicht.xls"
'Assuming other files
Case ...
End Select
If Len(file & "") > 0 Then
Set s = Server.CreateObject("ADODB.Stream")
s.Type = adTypeBinary 'adTypeBinary = 1 See "Useful Links"
Call s.Open()
Call s.LoadFromFile(file)
bin = s.Read()
'Clean-up the stream and free memory
Call s.Close()
Set s = Nothing
'Set content type header based on mime variable
Response.ContentType = mime
'Control how the content is returned using the
'Content-Disposition HTTP Header. Using "attachment" forces the resource
'to prompt the client to download while "inline" allows the resource to
'download and display in the client (useful for returning images
'as the "src" of a <img> tag).
Call Response.AddHeader("Content-Disposition", "attachment;filename=" & filename)
Call Response.BinaryWrite(bin)
Else
'Return a 404 if there's no file.
Response.Status = "404 Not Found"
End If
%>
This example is pseudo coded and as such is untested.
This script can then be used in <a>
like this to return the resource;
<a href="/getfile.asp?id=TESTFILE1">Click Here</a>
The could take this approach further and consider (especially for larger files) reading the file in chunks using Response.IsConnected
to check whether the client is still there and s.EOS
property to check for the end of the stream while the chunks are being read. You could also add to the querystring parameters to set whether you want the file to return in-line or prompt to be downloaded.
Useful Links
UsingMETADATA
to Import DLL Constants - If you are having trouble gettingadTypeBinary
to be recongnised, always better then just hard coding1
.Content-Disposition:What are the differences between “inline” and “attachment”? - Useful information about how
Content-Disposition
behaves on the client.
Video does not load - chrome: Not allowed to load local resource
If you look at the error message you are getting above you will see that it is trying to open the video from a URL starting with:
file://
The browser is interpreting that this file is a local file and not on a server - i.e. even though the 'video URL comes from a server' as you say the URL which the browser is seeing is a local URL.
If you want the source to be a video on a server your HTML code you should either see an absolute server source URL like this example:
<video id="testVid" controls preload="auto">
<source src="https://ftp.nluug.nl/pub/graphics/blender/demo/movies/ToS/tears_of_steel_720p.mov" type='video/mp4'>
</video>
Or a URL which is relative to your own web server serving the current page like this:
<video id="testVid" controls preload="auto">
<source src="/MyServerMoviesFolder/ToS/tears_of_steel_720p.mov" type='video/mp4'>
</video>
You can see some more examples here: https://www.w3schools.com/html/html_filepaths.asp
If, in your example, 'MyServer' is a valid 'authority name, e.g. 'MyServerDomainName.com:8080', then you URL is indeed a valid URL according to the RFC. It is referred to as a network-path reference URI and described in section 4.2 of the RFC linked below.
Different browsers may treat this differently, and Chrome does seem to default to a local file when it sees a URI starting with a double forward slash if you enter it directly in the URL tab of the browser.
However, with a valid 'authority' in the URL it should resolve to a video - see the example snippet below which is tested on Chrome and Safari and plays the video:
<video id="testVid2" controls preload="auto">
<source src="//commondatastorage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4" type='video/mp4'>
</video>
Related Topics
Display Property Differences for Inline-*Something*
Make Scrollbars Only Visible When a Div Is Hovered Over
Firefox @Font-Face with Local File - Downloadable Font: Download Failed
Importance of CSS Stylesheet Hierarchy
How Is the "Greater Than" or ">" Character Used in CSS
Apply Webkit Scrollbar Style to Specified Element
How to Use 3-Digit Color Codes Rather Than 6-Digit Color Codes in CSS
Height: Calc(100%) Not Working Correctly in CSS
Force Footer on Bottom on Pages with Little Content
Do I Not Understand the Flex-Grow Property
How to Remove Border from Specific Primefaces P:Panelgrid
Single VS Multiple Stylesheets in Responsive Web Design
CSS Grid Auto Fit with Max-Content
Does the CSS Flexbox Module Work on Direct Child Elements Only
How to Change the Link Color in a Specific Class for a Div CSS
What's the Difference Between Visibility: Hidden and Visibility: Collapse in Flexbox