Did something change with system.net.openURL in 7.8??
After upgrading to 7.8 we can no longer open network files.
Here is the existing code: (This code worked in 7.7)
f= '//srv-01/share/_NGB Work Orders/RS20141120-04/Attachments/VesselInventoryError.png'
if system.file.fileExists(f):
fileToOpen = "file:///" + f
system.net.openURL(fileToOpen)
Any help would be great. The Ignition Help doesn’t explain any of this.
I think i figured it out. I think in 7.8 it deals with spaces in file paths differently.
Looks like now you need to replace spaces with ‘%20’
So this:
‘//srv-01/share/_NGB Work Orders/RS20141120-04/Attachments/VesselInventoryError.png’
Should be This:
‘//srv-01/share/_NGB%20Work%20Orders/RS20141120-04/Attachments/VesselInventoryError.png’
Oh and be sure to preceed the above with ‘file:’ so your code would read like this:
system.net.openURL(‘file://srv-01/share/_NGB%20Work%20Orders/RS20141120-04/Attachments/VesselInventoryError.png’)
Some code that works pretty well:
def open(filePath):
#****Note: This will error out if the path is like this: \\server\folder\file.ext python does not play well with '\'s
#First Look to see if the file is on the local PC/Mapped drive or a fileshare(NFS) Path and build path prefix:
# For Local or Mapped drives path prefix should be: file:///
# For Fileshare(NFS) paths prefix should be: file:
prefix = ''
path = ''
if ':' in filePath:
prefix = 'file:///'
else:
prefix = 'file:'
print filePath
#now make sure slashes are correct:
if '/' in filePath:
path = filePath
else: #only if the path is like so \\\\server\\folder\\file.ext
path = filePath.replace('\\','/')
#now make sure spaces in the path are accounted for with %20 instead:
path = path.replace(' ','%20')
#Open the File
system.net.openURL(prefix+path)
Enjoy!
Hi James,
Thanks for posting this code. It really helps if you put it in blocks so we can see the indenting