我正在处理一个php图片上传脚本,我遇到了一个奇怪的问题。文件正在成功上传,但它们只有大约10字节。预览给了我错误:
无法打开文件'filename'。它可能被损坏或使用 预览无法识别的文件格式。
图片上传脚本:
$FileType = $_FILES['picture_file']['type'];
$FileSize = $_FILES['picture_file']['size'];
$FileName = $_FILES['picture_file']['name'];
$Dir = "uploads/";
if($_FILES){
if (($FileType == "image/gif")
|| ($FileType == "image/jpg")
|| ($FileType == "image/jpeg")
|| ($FileType == "image/png")
&& ($FileSize < 2097152)) {
if(move_uploaded_file($_FILES['picture_file']['tmp_name'], $Dir . $FileName === FALSE)){
echo "<div class='alert alert-danger'> Could not move uploaded file to \"uploads" . htmlentities($FileName) . "\"</div>\n";
} else {
mkdir($Dir, 0777);
file_put_contents($Dir . $FileName, $FileName);
echo "<div class='alert alert-success'>Successfully uploaded \"uploads/" .htmlentities($FileName) . "\"</div>\n";
}
} else {
echo "<div class='alert alert-danger'>File must be a JPG, JPEG, GIF or PNG and weigh <2MB. <strong><a class='alert-link' href='/nnash_ex2/'>Start over?</a></strong></div>";
}
}
我真的不知道为什么要上传部分文件,所以非常感谢正确方向的一点。
答案 0 :(得分:3)
file_put_contents($file,$str)
将使用内容$file
覆盖$str
。这一行:
file_put_contents($Dir . $FileName, $FileName);
清除文件并添加$FileName
作为其内容。如果您在文本编辑器中打开文件,则可以确认。