• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 678
  • Last Modified:

readfile() on network share

Hi, I need to use the readfile function to read a file that is on a network share.

I tried everything on the php.net help page, but it still doesn't work. File_exists always returns false and the readfile function returns the following error:
-----------------
Warning: readfile(\\172.16.3.35\storage6\2006-07-07\SP1\SP1_2006-07-07_14-06-39_r10.wmv) [function.readfile]: failed to open stream: Invalid argument in C:\web\websites\auditmedia2005\_admin\download_recorte.php on line 81
File not found.
-----------------

The same script can read a file on the local HD, no problems.

My network share has a permisson to Everyone (Full Control). I have some delphi applications that can read the files without problems, so I'm think the problem is a permission setting on the network share for the user that runs IIS on the webserver.  Or can it be something else?

Please help!
Thank you

0
rogerbrito
Asked:
rogerbrito
  • 3
  • 2
1 Solution
 
Richard QuadlingSenior Software DeveloperCommented:
Can you show the line of code?

As you are using \ and not /, you have to double them ...

so ...

<?php
readfile("\\172.16.3.35\storage6\2006-07-07\SP1\SP1_2006-07-07_14-06-39_r10.wmv");
?>

should be one of these ...

<?php
readfile("//172.16.3.35/storage6/2006-07-07/SP1/SP1_2006-07-07_14-06-39_r10.wmv");
?>

or

<?php
readfile("\\\\172.16.3.35\\storage6\\2006-07-07\\SP1\\SP1_2006-07-07_14-06-39_r10.wmv");
?>

Yes. 4 backslashes.
0
 
rogerbritoAuthor Commented:
Hi RQuadling, nope, it doesn't work:
-----------------------------
set_time_limit(0);
readfile("\\\\172.16.3.58\\storage2\\2006-06-28\\BEL\\BEL_2006-06-28_17-59-40_r15.wmv");

Warning: readfile(\\172.16.3.58\storage2\2006-06-28\BEL\BEL_2006-06-28_17-59-40_r15.wmv) [function.readfile]: failed to open stream: Invalid argument in C:\web\auditmedia2005\_admin\scripts\readfile.php on line 12
----------------------------

set_time_limit(0);
readfile("//172.16.3.58/storage2/2006-06-28/BEL/BEL_2006-06-28_17-59-40_r15.wmv");

Warning: readfile(//172.16.3.58/storage2/2006-06-28/BEL/BEL_2006-06-28_17-59-40_r15.wmv) [function.readfile]: failed to open stream: Invalid argument in C:\web\auditmedia2005\_admin\scripts\readfile.php on line 12

----------------------------

Any ideas
0
 
rogerbritoAuthor Commented:
I've found the answer!

It was  a permission issue. I just had to create an user account on the computer that has the remote share using the same username for the Anonymous User used by IIS on the webserver. Since windows generates a random password for this user, I had to change the password and create the new account using the same user/password. Give read permission to this user on the share and it works!

Thank you RQuadling for your help.

[]s
Roger
0
2018 Annual Membership Survey

Here at Experts Exchange, we strive to give members the best experience. Help us improve the site by taking this survey today! (Bonus: Be entered to win a great tech prize for participating!)

 
Richard QuadlingSenior Software DeveloperCommented:
That's the joy of IIS. If you are on an old version of IIS, newer versions use a different user (I believe). Even though I'm on windows, I don't use IIS as it is WAY to complex for most requirements. I use Sambar Server - free from http://www.sambar.com - with a license option if you need the enhanced functionality (I don't). Support is good too.

Can support PHP ISAPI and FastCGI. Can support PHP4 and PHP5 simultaneously with very little issue.

0
 
Richard QuadlingSenior Software DeveloperCommented:
No objection.
0
 
GhostModCommented:
Closed, 250 points refunded.

GhostMod
Community Support Moderator
0

Featured Post

Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

  • 3
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now