2015-06-17 28 views
0

我試圖保存一個文件夾內的圖像。要獲得這個文件夾,我需要傳遞三個目錄:圖像,來自用戶的ID,來自圖庫的ID和爲圖像生成的名稱。如何將變量放在fopen中?

$directory = "../images/" . $id . "/" . $row[0] . "/" . $new_url; 

我想將目錄變量傳遞給fopen,我試過這種方式,但沒有工作。

$file = fopen($directory, 'wb'); 

全碼:

function uploadimg_func($base, $id){ 


    $binary=base64_decode($base); 
    header('Content-Type: bitmap; charset=utf-8'); 

    $selectgallery = db_queries("SELECT id FROM `galleries` WHERE name = 'Fotos de perfil' AND user_id = '".$id."' "); 

    $row = mysqli_fetch_array($selectgallery); 

    $new_url = rand(0, pow(10, 5)) . '_' . time() . '.' . "jpg"; 

    $directory = "../images/" . $id . "/" . $row[0] . "/" . $new_url; 

    $file = fopen($directory, 'wb'); 

    fwrite($file, $binary); 
    fclose($file); 

    $createphoto = db_queries("INSERT INTO photos (`name`, `title`, `description`, `gallery_id`,`created_at`) 
    VALUES ('".$new_url."', '', '', '".$row[0]."', now())"); 

} 

感謝。

+0

它給你一個錯誤? –

+0

我沒有收到任何錯誤。 –

+0

通過$ id和$ row [0]引用的目錄是否已經存在? fopen創建文件,但不包含缺少的目錄。只是要清楚:你試圖創建一個名爲存儲在$ new_url中的*文件*?那麼你的變量名是誤導性的 – Marged

回答

1

相反的:

$file = fopen($directory, 'wb'); 

務必:

$file = fopen($_SERVER['DOCUMENT_ROOT'] . $directory, 'wb'); 

此外,請確保您有正確的文件夾和文件的權限設置。圖像路徑應該是0775.如果仍有問題,請檢查包含圖像文件的文件夾是否存在....

它在我的機器上工作得很好。