Php 文件\u get\u内容返回false而不是\u可读true
我只是在处理$文件和文件获取内容时遇到了一些问题Php 文件\u get\u内容返回false而不是\u可读true,php,file,upload,file-get-contents,Php,File,Upload,File Get Contents,我只是在处理$文件和文件获取内容时遇到了一些问题 $nomFichier = $_FILES['pieceJointe']['name']; echo is_readable($_FILES['pieceJointe']['tmp_name']); echo $_FILES['pieceJointe']['error']; if(file_get_contents($_FILES['pieceJointe']['tmp_name']) == false) { echo "impo
$nomFichier = $_FILES['pieceJointe']['name'];
echo is_readable($_FILES['pieceJointe']['tmp_name']);
echo $_FILES['pieceJointe']['error'];
if(file_get_contents($_FILES['pieceJointe']['tmp_name']) == false)
{
echo "impossible de lire le fichier.<br/>";
}
else
{
// store the file into a BLOB field in my database
}
$nomFichier=$\u文件['pieceJointe']['name'];
echo是可读的($_文件['PieceJoint']['tmp_名称]]);
echo$_文件['PieceJoint']['error'];
if(file_get_contents($_FILES['piecejoint']['tmp_name'])==false)
{
呼应“不可能的费希尔生活”
;
}
其他的
{
//将文件存储到我的数据库中的BLOB字段中
}
如果可读显示为“1”,则$文件['PieceJoint']['error']显示为0。
但file\u get\u内容返回false
我注意到这种情况只发生在名称中包含重音符号的文件中。
仅使用字母/数字文件名,一切正常
我错过什么了吗
ps:我是法国学生,不专业,对不起我的英语:o
谢谢 使用
var\u dump
查看的实际值是否可读()。您看到的“1”实际上是$\u文件['piecejoint']['error']
的输出,这意味着您尝试上载的文件太大。请参阅。我猜您的php.ini文件的file\u get\u contents函数和open\u basedir指令存在一些冲突:
在读取文件之前,请尝试使用“移动上传的文件”功能。
它会将上载的文件从服务器的临时目录移动到指定目录(open_basedir指令仅影响move_uploaded_file的destination参数)难道$_FILES['piecejoint']['tmp_name']不是一个文件名,而是一个有效的完整路径吗?
在打开文件之前,可能先使用move_uploaded_file移动文件。确保打开了错误报告。如果file\u get\u contents()
返回false,则它还应发出一个错误,该错误将为您提供更多信息。我的错误报告已打开,错误报告(-1);使用var_dump:bool(true),并且我的服务器配置正确,如果文件名不包含重音符号,我可以上载文件。我甚至尝试这样使用它,以避免重音符号:move_upload_file($_files['piecejoint']['tmp_name'],“/tmp/”$filename不带重音符号);但这是同样的问题。然后我使用file_get_contents($_FILES['piecejoint'][“/tmp/”$namewithoutaccents])$_文件['PieceJoint']['tmp_name']包含一个完整路径,例如“/tmp/phpzQdskC”。但是我看到$_文件['PieceJoint']['name']包含一些类似fichiétèst.txt(这里不是fichétèst)的内容,这难道不是一个编码问题吗,这是烦人的文件上传吗?