在PHP脚本中,无论是调用include(), require(), fopen(),还是它们的衍生物,如include_once, require_once,甚至move_uploaded_file(),都经常会遇到错误或警告:
无法打开流:没有这样的文件或目录。
什么是快速找到问题根源的良好流程?
在PHP脚本中,无论是调用include(), require(), fopen(),还是它们的衍生物,如include_once, require_once,甚至move_uploaded_file(),都经常会遇到错误或警告:
无法打开流:没有这样的文件或目录。
什么是快速找到问题根源的良好流程?
当前回答
无法打开流:在mac中没有这样的文件或目录
例如,我会上传一张图片。但是我得到了这个错误。第一件事,我会做右键点击图像和获取信息。
$ thepathofmpicture = "/Users/misstugba/Desktop/"; 配合功能使用
if(move_uploaded_file($_FILES["file"]["tmp_name"],$thePathOfMyPicture.$_FILES["file"]["name"])){
echo "image uploaded successfully";
}
其他回答
下面的PHP设置在PHP .ini中如果设置为不存在的目录也会引发
PHP警告:未知:未能打开流:权限被拒绝 第0行未知
sys_temp_dir
upload_tmp_dir
session.save_path
无法打开流:在mac中没有这样的文件或目录
例如,我会上传一张图片。但是我得到了这个错误。第一件事,我会做右键点击图像和获取信息。
$ thepathofmpicture = "/Users/misstugba/Desktop/"; 配合功能使用
if(move_uploaded_file($_FILES["file"]["tmp_name"],$thePathOfMyPicture.$_FILES["file"]["name"])){
echo "image uploaded successfully";
}
在PHP中,启动Apache,然后在你的环境中(.env)写下你的数据库名和密码。
对我来说,我得到了这个错误,因为我试图读取一个需要HTTP认证的文件,有用户名和密码。希望能帮助别人。可能是另一个极端情况。
Edit
你可以通过检查头文件来检查是否存在这种类型的身份验证:
$file_headers = get_headers($url);
if (!$file_headers) echo 'File headers missing';
else if (strpos($file_headers[0], '401 Unauthorized') > -1) echo '401 Unauthorized';
除了其他精彩的回答,在Windows上写一个简单的脚本时,我忽略了一件事:当试图打开一个带有Windows不支持的文件名字符的文件时,会出现这个错误。
例如:
$file = fopen(date('Y-m-d_H:i:s'), 'w+');
将:
fopen(2022-06-01_22:53:03): Failed to open stream: No such file or directory in…
Windows不喜欢:在文件名中,以及其他一些字符。