2013-10-14 124 views
0

我試圖建立一個表單上傳縮略圖(圖像)到服務器 - 看起來像圖像成功上傳到服務器臨時文件夾(我已經證實這與get_defined_vars - 它給人一種臨時文件名,並沒有錯誤),但它沒有被移動到文件夾中的DOCUMENT_ROOT上傳一張圖片PHP(失敗)

這裏的最終目標是讓然後上傳圖像返回URL存儲在MySQL

HTML表格(位於DOCUMENT_ROOT/admin)

<form action="upload.php" method="post" enctype="multipart/form-data"> 
    <label for="thumbnail">Thumbnail </label> 
    <input type="file" name="thumbnail" id="thumbnail"> 
</form> 

upload.php的

<?php 
$thumbnail = uploadfile($_FILE['thumbnail']['name'],$_SERVER['DOCUMENT_ROOT'].'/thumbs/upload/',$_FILE['thumbnail']['tmp_name']); 
if(($thumbnail)!== FALSE) 
{echo $thumbnail;} else {echo 'upload failed<br>';} 

function uploadfile($origin, $dest, $tmp_name) 
{ 
    $origin = strtolower(basename($origin)); 
    $fulldest = $dest.$origin; 
    $filename = $origin; 
    echo '$fulldest '.$fulldest.'<br />'; 
    echo '$filename '.$filename.'<br />'; 
    if (move_uploaded_file($tmp_name, $fulldest)) 
    {return $filename;} 
    return false; 
} 
?> 

結果(注:我已經刪除了實際的文檔根目錄)

$fulldest [DOCUMENT_ROOT] /thumbs/upload/ 
$filename 
upload failed 

我還設置了500M上傳一個.htaccess指令,以確保圖像大小」不是個t問題

<IfModule mod_php4.c> 
    php_value upload_max_filesize 500M 
    php_value post_max_size 500M 
</IfModule> 

編輯::我的目標目錄是chmod 0777測試 - 所以權限不應該是問題。

+1

可能是目標目錄的權限問題 – 2013-10-14 20:12:06

+0

您正在運行Web服務器的用戶將需要對目標目錄的寫入權限。檢查您的權限。 – 2013-10-14 20:12:08

+0

我的目錄是0777,更新的原始文章包括這個 – Philippe

回答

1

我不禁注意到你的$filename是空的,$fulldest缺少文件名。我認爲問題在於你使用$_FILE而不是$_FILES

$thumbnail = uploadfile($_FILES['thumbnail']['name'], 
      $_SERVER['DOCUMENT_ROOT'].'/thumbs/upload/', 
      $_FILES['thumbnail']['tmp_name']); 

我認爲這樣會有效。

+0

yup - 它的$ _FILES不是$ FILE ...謝謝! @Qben解決了我的問題 (@Qben請在第一個許可證編輯你的答案,爲他人的利益,你的遺漏a) – Philippe

+0

@Philippe很高興幫助編輯。 :) – Qben