2012-04-10 5 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); 

Поскольку у вас есть файлы ИНТ памяти, и они в формате base64, вы можете добавить свои вложения с Content-Transfer-Encoding: base64.

+0

Когда я несериализую данные, чтобы получить файлы, там написано «Массив». Как я могу получить фактические файлы, в виде ссылки для скачивания кому угодно. Даже в базе данных в столбце, где хранятся данные файлов, т. Е. [BLOB - 712.9KiB], когда я пытаюсь щелкнуть по нему, так что см. Файлы, сохраняется тип .bin. Я отправил .jpg файлы –

+1

@HanyaIdrees это другая проблема. Если вы хотите отображать файлы в виде ссылок, вам нужно будет создать новую страницу, которая использует какой-то идентификатор файла (например, 'download.php? Email = xxx & fileId = xxx', там вам нужно будет получить информацию из базы данных + 'unserialize' +' base64_decode' ваш желаемый файл.После того, как вы все отобразите файл, установив 'header ('Content-Type: image/jpeg')' или любой другой файл и отображающий данные файла 'die ($ base64DecodedFile) '. – Alex

+0

Можете ли вы предоставить мне ссылку на учебное пособие или любую другую ссылку для помощи. Я новичок в php, так что пожалуйста –

Смежные вопросы