2012-04-10 45 views
0

我被要求將多個附件(最多5個)保存到數據庫,然後在php中將它們回收到另一個頁面。 我已經爲此搜索了一個星期以上,並且只找到可以將一個文件保存到數據庫然後再回顧它們的教程。保存5個附件,然後檢索它們

我的場景是我發送一個電子郵件與這些多個附件,電子郵件被保存在一個表「電子郵件」,現在我想要的附件也被保存在那裏,在另一列,所以很容易檢索他們,在一個PHP頁面上。

請任何人在這種情況下幫助我。 爲我提供一個適當的指導路線。 我米使用phpMyAdmin保存所有說事

回答

1

這裏是你想要的解決方案: 上傳完畢後5個文件服務器讀取他們到內存和base64_encode

E.g.

$files = array(
    'file1' => base64_encode(file_get_contents('/path/to/file1')), 
    'file2' => base64_encode(file_get_contents('/path/to/file2')), 
    'file3' => base64_encode(file_get_contents('/path/to/file3')), 
    'file4' => base64_encode(file_get_contents('/path/to/file4')), 
    'file5' => base64_encode(file_get_contents('/path/to/file5')), 
); 

// serialize 
$filesData = serialize($files);  
// put $filesData in db column 

// when your retrieve it later from database, unserialize and use array 
$files = unserialize($columnValue); 

既然你有文件詮釋內存和他們的編碼,可以用Content-Transfer-Encoding: base64添加附件的base64。

+0

當我反序列化數據,獲取文件,它寫在那裏「陣列」。我怎樣才能得到實際的文件,以鏈接的形式下載任何人。即使在保存文件數據的列中的數據庫中,即[BLOB - 712.9KiB],當我嘗試單擊它時,請查看這些文件,保存.bin類型。我已經發送了.jpg文件 – 2012-04-12 14:36:11

+1

@HansIdrees這是一個不同的問題。如果你想顯示文件作爲鏈接,你將不得不創建一個需要某種文件ID的新頁面(例如'download.php?email = xxx&fileId = xxx',在那裏你必須從數據庫+通過設置header('Content-Type:image/jpeg')'或任何文件並顯示文件數據'die($ base64DecodedFile)來顯示所有文件, '。 – Alex 2012-04-12 15:00:59

+0

您能否爲我提供一個教程鏈接或其他任何幫助鏈接。我是一名初學者,所以請在 – 2012-04-12 16:30:14

相關問題