• 技术文章 >后端开发 >php教程

    PHP访问局域网共享文件

    2016-06-23 14:09:24原创2292
    各位好!我想访问局域网内另外一台计算机上的图片文件,可是在PHP里面老是找不到。在PHP里面用filesize测试图片的大小都不行!代码是:
    $filename = "http://172.16.18.123/pic/2012.png";
    $size = filesize($filename);
    echo $size;

    报的错是:Warning: filesize() [function.filesize]: stat failed for http://172.16.12.103......
    我确定两台机器是在一个网段,而且共享都设置了的。我在浏览器输入上述代码中的url地址都可以的。
    请教哪位处理过这种问题的大侠!不甚感激!!


    回复讨论(解决方案)

    $filename = "//172.16.18.123/pic/2012.png";

    $filename = "//172.16.18.123/pic/2012.png";
    非常感谢您!!我试了,对的!不过我发现一个问题,如果我写成
    $filename = "//172.16.18.123/news/pic/2012.png";还是找不到。news文件夹和pic文件夹都是共享出来的,只是news是pic的上一级。这是怎么回事呢?劳烦您再帮我解答下疑问不甚感激!还有,如果我把2012.png直接放到172.16.18.123的F盘根目录下,代码应该怎么写啊???多谢这位大侠!本人实在菜鸟,不好意思呀!!!

    统一资源定位
    //机器名或ip/共享名/路径/文件名

    今天我又学了一招

    统一资源定位
    //机器名或ip/共享名/路径/文件名
    谢谢这位大侠,不好意思再麻烦你下下~~~~请问这种情况下,如果想保证远程文件的安全性应该怎么做呢?看了手册里面说开启安全模式,PHP会检查脚本与要读取的文件的UID,这个具体是什么意思啊?UID是怎么检查的呢?有没有深入一点的资料推荐一下啊~~~~或者,php.ini里面能不能对远程文件的登录权限做一个设置啊?比如设置它的用户名和密码,这样通过验证了才能打开远程文件。谢谢您!!万分感激 !!期待您的回复哦!!!

    无协议声明时,默认协议名是 file 只适用于局域网

    如需安全检查,就不能用同一资源定位了。需改用 LDAP

    本帖最后由 xuzuning 于 2012-12-18 11:27:22 编辑无协议声明时,默认协议名是 file 只适用于局域网

    如需安全检查,就不能用同一资源定位了。需改用 LDAP
    谢谢!!我就是想在局域网内简单调用另一台机器上的某个文件,但是用统一资源定位不能进行安全检查,即不能进行用户登录权限的验证。这种情况我如果把目标机器的文件夹映射到本地磁盘,这样子能不能行呢?我代码里这样写$pic="Z:\\data\news\pic\1.jpg";Z是另外那台机器上的文件夹映射到本机的盘符,这样子不行,PHP好像不认识,是不是我写错了呢?请教您了!!总之我只想简单地调用一下一个东西,但是又不想把那台机器上的文件夹完全暴露出来,就是稍微安全一点,请你帮忙解答!!万分感激啊!!!

    NET USE
    作用:连接计算机或断开计算机与共享资源的连接,或显示计算机的连接信息。
    命令格式:net use 〔devicename | *〕 〔computernamesharename〔volume〕〕 〔password | *〕〕 〔/user:〔domainname〕username〕 〔〔/delete〕 | 〔/persistent:{yes | no}〕〕
    参数介绍:
    键入不带参数的net use列出网络连接。
    devicename指定要连接到的资源名称或要断开的设备名称。
    computernamesharename服务器及共享资源的名称。
    password访问共享资源的密码。
    *提示键入密码。
    /user指定进行连接的另外一个用户。
    domainname指定另一个域。
    username指定登录的用户名。
    /home将用户连接到其宿主目录。
    /delete取消指定网络连接。
    /persistent控制永久网络连接的使用。
    简单事例:
    (1)net use e: YFANGTEMP将YFANGTEMP目录建立为E盘
    (2)net use e: YFANGTEMP /delete断开连接

    NET USE
    作用:连接计算机或断开计算机与共享资源的连接,或显示计算机的连接信息。
    命令格式:net use 〔devicename | *〕 〔computernamesharename〔volume〕〕 〔password | *〕〕 〔/user:〔domainname〕username〕 〔〔/delete〕 | 〔/persistent:{yes |……
    大侠,我按照你说的试了,把172.16.22.10上的F盘映射到我本机的Z盘,我在命令行是这样输的:net use z: \\172.16.22.10\f$ "password" /user:"administrator",我试了这样是可以的。但是我在PHP里用system函数执行的时候就不行,请您帮我看看,我的代码是:

    $cmd="net use z: \\\\172.16.22.10\\f$ \"password\" /user:\"administrator\"";
    if(system($cmd))
    echo "映射成功";
    else echo "映射失败";

    请你帮我看看是代码的问题,还是php.ini里面需要配置什么东西才行啊, 我的安全模式是关了的。

    谢谢!!!非常感谢您不耐其烦解答我一个菜鸟的弱弱问题。。。!!期待您的回复哦!!~~~

    字符 \ 反过来写,就清楚多了
    $cmd="net use z: //172.16.22.10/f$ password /user:administrator";
    还有 password 是 administrator 的登录口令,要真实的

    字符 \ 反过来写,就清楚多了
    $cmd="net use z: //172.16.22.10/f$ password /user:administrator";
    还有 password 是 administrator 的登录口令,要真实的
    谢谢你大侠!!我按照你说的来写了,但是还是不行艾~~~麻烦你再帮我看看:
    $cmd="net use z: //172.16.22.10/f$ pass123456 /user:username";
    system($cmd);
    您看会不会是system函数的问题啊,需要在配置文件里修改什么不呢?
    我在命令行里操作是可以的,就是PHP执行不了。
    再次感谢您!!~~~~~~~~~~~

    请问楼主 最后这个问题解决了吗 我现在也遇到同样的问题了,查了好多资料也没解决。求帮助啊

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:关于php? 下一篇:为什么我无法显示用户信息啊?
    PHP编程就业班

    相关文章推荐

    • PHP中的日期处理方法集锦_PHP教程• 在PHP中使用灵巧的体系结构_PHP教程• 抓取YAHOO股票报价的类_php技巧• Yii中创建自己的Widget实例_PHP• php短址转换实现方法_PHP

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网