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)的内容,这难道不是一个编码问题吗,这是烦人的文件上传吗?