PHP檔案上傳問題

if(is_uploaded_file($_FILES['myfile']['tmp_name'])){

$DestDIR = "C:/AppServ/www/new_medical_center/files/";

if(!is_dir($DestDIR) || !is_writeable($DestDIR))

die("目錄不存在或無法寫入");

$File_Extension = explode("." , $_FILES['myfile']['name']);

$File_Extension = $File_Extension[count($File_Extension)-1];

$ServerFilename =date("YmdHis") . "." . $File_Extension;

move_uploaded_file ($_FILES['myfile']['tmp_name'] , $DestDIR . "/" .$ServerFilename );

}

上面那一段程式碼是參考網路上的寫法

檔案可以成功上傳

但是之後卻會跑出

Column 'ServerFilename' cannot be null

因為網路上寫法都差不多

所以不知道是哪裡出問題

謝謝

已更新項目:

我是想要做一個頁面可以供管理者上傳檔案(ppt或word)

然後可以透過管理者刪除

之後使用者可以經由頁面下載

預期網頁有

index(使用者下載的列表)

login(管理者登入)

admin(管理者管理頁面包含上傳和刪除)

upload(上傳頁面)

del(刪除頁面)

該如何撰寫呢??

謝謝囉:)))

2 個已更新項目:

感覺是這句的關係

因為將它設成指定的數字時

就沒有Column 'ServerFilename' cannot be null的問題

但是在下載的部分

似乎還是不可行

3 個解答

評分
  • MrAYD
    Lv 5
    8 年前
    最佳解答

    以下是我撰寫的一個小範例, 請參考 如有問題可回覆

    <?php

    if (isset($_FILES['ufile']))

    {

    if ($_FILES['ufile']['error'])

    echo "Error! Please re-check you upload file.";

    else

    {

    $path = dirname(__FILE__) . '/upload/';

    $name = $_FILES['ufile']['name'];

    $tmp_name = $_FILES['ufile']['tmp_name'];

    if (!checkFileExtension($name, array('jpg', 'png')))

    {

    if (!(is_dir($path) && is_writable($path)))

    {

    mkdir($path);

    fileUpload($tmp_name, $name, $path);

    }

    else

    fileUpload($tmp_name, $name, $path);

    }

    else

    echo "Error!! The file extension is invalid.";

    }

    }

    function fileUpload($tmp_name, $fileName, $path)

    {

    if (!is_uploaded_file($tmp_name))

    echo "Not an uploaded file.";

    else

    {

    $fileName = date("Ymd") . '.' . getFileExtension($fileName);

    echo sprintf("The file upload %s.", (move_uploaded_file($tmp_name, sprintf('%s/%s', $path, $fileName)) ? "successful" : "failed"));

    }

    }

    function checkFileExtension($fileName, $validate)

    {

    if (is_array($validate))

    {

    $fileExt = getFileExtension($fileName);

    if (strcmp($fileExt, ""))

    {

    foreach ($validate as $extension)

    {

    if (!strcmp($fileExt, $extension))

    return false;

    }

    }

    }

    return true;

    }

    function getFileExtension($fileName)

    {

    $fileExt = explode('.', $fileName);

    $fileExtSize = count($fileExt);

    return $fileExtSize > 0 ? $fileExt[$fileExtSize - 1] : "";

    }

    ?>

    2012-08-14 22:50:03 補充:

    把project send 給我~

    我幫你看看 哪裡有錯~~

    我想這專案應該不用半天應該就可以整個做完了吧....

    加油~~

    • 登入以對解答發表意見
  • 8 年前

    先建一個images 目錄

    a.php

    <form action="file_ok.php" method="post" enctype="multipart/form-data">

    <input type="hidden" name="max_file_size" value="10240">

    <input type="file" name="myfile">

    <input type="submit" value="上傳">

    </form>

    file_ok.php

    <?php

    $uploaddir = '';

    $uploadfile = $uploaddir.basename($_FILES['myfile']['name']);

    echo "<pre>";

    if (move_uploaded_file($_FILES['myfile']['tmp_name'], "images/".$uploadfile)) {

    echo "Upload OK \n";

    } else {

    echo "Upload failed \n";

    }

    print_r($_FILES);

    echo "</pre>";

    ?>

    • 登入以對解答發表意見
  • 8 年前

    $ServerFilename 變量出錯了吧...

    參考看看 自己寫。

    • 登入以對解答發表意見
還有問題?馬上發問,尋求解答。