我的PHP脚本正在上传不完整的图像文件

时间:2013-07-30 08:08:04

标签: php image upload

我正在处理一个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>";                            
    }                               
} 

我真的不知道为什么要上传部分文件,所以非常感谢正确方向的一点。

1 个答案:

答案 0 :(得分:3)

file_put_contents($file,$str)将使用内容$file覆盖$str。这一行:

        file_put_contents($Dir . $FileName, $FileName);

清除文件并添加$FileName作为其内容。如果您在文本编辑器中打开文件,则可以确认。