PDA

View Full Version : php error on fopen - file name too long


sailnet
12-05-2009, 05:41 PM
I am trying to open and read a url generated by spring where pictures from my camera phone are stored:

here's an examples of their url:

http://pictures.sprintpcs.com/getMMBOXMessageMedia?id=Xw1004H8sLv6S3x76lVPYqVrTx G3Wy0cRaW5QH7BKzIP3kyd2rzGvgmk5gW%2FZUWGqyw0fwJJvr 5n%0AmyVjMRcrEa7CM6jI4fnEF70tqiCGYjuGkNKbb8WqPF6J6 p0x6Nggg%2FAHqM%2B9at7rfcoAkPZBSw%3D%3D%0A

However, when I try to open the link with the following code:
$in= fopen($mylink1,"rb"); - where $mylink1 is the string above I get the following error:

Warning: fopen(http%3A%2F%2Fpictures.sprintpcs.com%2FgetMMB OXMessag%3D%0D%0AeMedia%3Fid%3D3DXw1004H8sLv6S3x76 lVPYqVrTxG3Wy0cRaW5QH7BKzIP3kyd2rzGvgmk5gW%252FZ%3 D%0D%0AUWGqyw0fwJJvr5n%250AmyVjMRcrEa7CM6jI4fnEF70 tqiCGYjuGkNKbb8WqPF6J6p0x6Nggg%252FA%3D%0D%0AHqM%2 52B9at7rfcoAkPZBSw%253D%253D%250A) [function.fopen]: failed to open stream: File name too long in /usr/local/websites/mysite/mobile-reader/class.emailattachment.php on line 240

However, if I put the url within quotes in the fopen it will not give me the error and work.

since I'll be throwing different urls at the program I cannot hard code the link inside the fopen

any ideas why this is happening?

I've also tried urlencode, urldecode, rawurlencode, rawurldecode etc to no avail.

I've been testing for about 4 hours before I resorted to ask for help

any ideas would be truly appreciated

kh99
12-05-2009, 05:50 PM
I threw it in a variable and tried the fopen and it worked for me. I don't know, but my guess would be that if it's saying "file name too long" then it isn't being recognized as a url for some reason.

sailnet
12-05-2009, 06:03 PM
can you give me a sample of your code?

php configuration issue maybe?

ps: I just check ed and my php.ini file does have allow_url_fopen = On

kh99
12-05-2009, 06:07 PM
$url='http://pictures.sprintpcs.com/getMMBOXMessageMedia?id=Xw1004H8sLv6S3x76lVPYqVrTx G3Wy0cRaW5QH7BKzIP3kyd2rzGvgmk5gW%2FZUWGqyw0fwJJvr 5n%0AmyVjMRcrEa7CM6jI4fnEF70tqiCGYjuGkNKbb8WqPF6J6 p0x6Nggg%2FAHqM%2B9at7rfcoAkPZBSw%3D%3D%0A';
$fd = fopen($url, "rb");


I noticed that if I even put a space in front of the URL or mess with the http: part, I get a different error (not "file name too long", but I'm also using Windows and I suspect that stuff is OS dependent - I don't know maybe that's the reason it's working for me).

--------------- Added 1260044206 at 1260044206 ---------------

can you give me a sample of your code?

php configuration issue maybe?

ps: I just check ed and my php.ini file does have allow_url_fopen = On

And you said it works as a literal string, so it seems like it's got to be something to do with your variable assignment.