欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

同级目录下文件获取失败

程序员文章站 2022-05-30 17:38:41
...
$files = '131204-5.csv';$str  = file_get_contents($files) or die("文件打开失败");


Warning: file_get_contents(131204-5.csv) [function.file-get-contents]: failed to open stream: No such file or directory in D:\...
文件打开失败

在本机同环境下建的文件可读,放到服务器上却无法执行,对应的磁盘也设置了everyone权限。
请问是什么原因?

回复讨论(解决方案)

$files = './131204-5.csv';

最好把错误信息贴全了,以便于分析问题

楼主好,我试验了你的代码

$files = 'new.txt';$str  = file_get_contents($files) or die("文件打开失败");

没有错误信息提示,
下一步我将文件名故意写错,报错和你一样:
Warning: file_get_contents(new.txt.1): failed to open stream: No such file or directory in C:\xampp\htdocs\a\mark.php on line 9
文件打开失败

楼主在检查一下环境吧。

$files = './131204-5.csv';

最好把错误信息贴全了,以便于分析问题

同目录好像是没问题了,如果是*.php和a文件夹是在同一目录,a文件夹的结构是a/b/c.csv,其中a,b为文件夹,现在*.php访问c.csv文件,相对路径是不是 $path = 'a/b/c.csv'?

下面的代码报错:
$files = 'a/b/131204-5.csv';
echo file_get_contents($files);

error:Warning: file_get_contents(a/b/131204-5.csv) [function.file-get-contents]: failed to open stream: No such file or directory in D:\Label_Barcode\CvtBarcodeSystem\new\onstore\sgm_tsm_upload.php on line 17

是的,是 $path = 'a/b/c.csv'
不过在有些环境(有些php版本下)中需添加当前目录 ./
所以写作 $path = './a/b/c.csv'; 比较稳妥

是的,是 $path = 'a/b/c.csv'
不过在有些环境(有些php版本下)中需添加当前目录 ./
所以写作 $path = './a/b/c.csv'; 比较稳妥

我测试了下,只有文件名不含中文时才能读出来。有没有办法读含中文的文件名?

服务器环境是英文的。

utf-8 的程序运行在 gbk 环境中
或是
gbk 的程序运行在 utf-8 环境中
都会出现无法识别中文文件名的情况
一定要用中文文件名,则必须按操作系统的默认字符集转码