我用的Apmserv搭建环境,xp系统,file_exists($pFilename)检查文件是否存在,$pFilename是用$_POST[]获取的file类型的表单元素。$POST[]在我的电脑上获取表单元素得到文件绝对路径,程序放到别的电脑上,$POST[]获取的只是文件名,应该是这一步导致file_exists($pFilename)检查错误,但为什么在我的电脑上可以在别的电脑上就不可以获得绝对路径呢,同样的程序啊。

解决方案 »

  1.   

    浏览器不允许程序员直接访问 客户端本地的文件吧? 如果可以直接访问那不是很不安全? 你输出$POST[]内容 地址应该不一样吧? 不知道你要实现什么功能,要读取客户端本地的文件内容的话 至少要先上传上去吧?
      

  2.   

    file类型的表单元素 是用于上传文件的,这一点你并没有提及如果用 $_POST 可以得到file类型的表单元素的值,则表示你的表单缺少enctype="multipart/form-data"属性,而无法上传文件是否提供被上传文件的绝对路径,取决于所使用的浏览器。
    而被上传文件的绝对路径对于接收方而言是毫无意义的
      

  3.   

    感谢一楼二楼的回答
    是缺少enctype="multipart/form-data这个属性,但是对php获取excel文件的内容,为什么要上传文件我不是很理解,我实现的功能很简单,用phpexcel获取excel某些单元格内容。我的程序在自己电脑上可以实现内容导入数据库,$_POST[]获取的是路径,但是在别的电脑上就不行,$_POST[]获取的地址只是文件名。还想请教这是什么问题呢
      

  4.   

    为什么要上传呢?
    网站位于web服务器上,而网页在用户的浏览器中。
    除了在服务器上进行调试以外,两者并不在同一台机器上。所以不能用文件系统相互访问只有将文件上传到服务器上,才可以进行操作
      

  5.   


    根据浏览器的不同,POST的结果也是不同的。有得可以得到路径,有的把路径隐藏了。
      

  6.   

    shukean,xuzuning,xiebuqing,谢谢各位!我好像明白点了,有什么问题还希望不吝赐教!