PHP上传的文件未保存,但表示确实如此

时间:2014-05-17 08:33:59

标签: php

我有这个PHP代码:

if (isset($_FILES["ufile"]["name"])){              //if file was chosen

    $allowed =  array('pdf');
    $filename = $_FILES['ufile']['name'];
    $ext = pathinfo($filename, PATHINFO_EXTENSION);
    if(!in_array($ext,$allowed) ) {                //only allowed filetype is PDF
        echo 'Nevybral jste soubor PDF. <a style="color:blue; text-decoration:underline;" onclick="window.history.back()">Vraťte se na předchozí stránku.</a>';
    }
    else {                                         //if everything OK, proceed to save the file
        $jmeno=  "pdf".date("dmY").".pdf";         //for example pdf17052014.pdf (works fine)
        $path="depository/".$jmeno;                //depository has chmod 777
        if(move_uploaded_file($_FILES['ufile']['tmp_name'], $path)){ //if moved to depository, echo -all fine-
            echo "<font color=green>The file was uploaded</font>";
            include "friends.php";
            mysql_connect("$Dhost", "$Duser", "$Dpass");
            mysql_select_db("$Dbname");
            $filtr = mysql_real_escape_string(br2nl($_POST["nadpis"]));
            $filtrB = mysql_real_escape_string(br2nl($_POST["zprava"]));
            $provedu="insert into usneseni (autor, cas, nazev, text, odkaz) values ('".$_SESSION["jmeno"]."',".time().",'".$filtr."', '".$filtrB."', '".$jmeno."')";
            $vysledek=mysql_query("$provedu") or die(mysql_error()." <font color=red>Nepodařilo se zapsat do databáze</font>");  
            mysql_close();      
        }
        else {
            echo $_FILES['ufile']['error'];
        }
    }
}

当我运行它时,会显示&#34;文件已上传&#34; 。然后我将其名称写入数据库,这很好。但是当我查看&#34;存储库&#34;时,文件就不存在了。存储库有chmod 777.代码没有显示任何错误。我不知道为什么会这样。

1 个答案:

答案 0 :(得分:2)

目录存放库与主脚本位于同一文件夹中,还是与您提交给我们的上传脚本位于同一文件夹中?

你如何确定现在有上传文件? (在某些ftp客户端,您必须更新目录以查看新文件。)

我拿了你的脚本并在我的服务器上使用它。这个对我有用。我使用@date来抑制警告,因为当没有正确指定时区时,它经常会抛出错误。另一种方法是使用 date_default_timezone_set(UTC);//Use your own timezone here.。只要date抛出错误,您的文件字符串可能无法正确构建。

你试过var_dump($_FILES);吗?