2016-11-02 157 views
0

我正在使用php和intervention如何在MySQL中存儲blob(圖像)?

blob的db格式是什麼?

MySQL是否將其另存爲base64?

在將圖像文件保存到db之前,我該怎麼做?

Image::make('......')->encode('data-url'); 

是嗎?

+0

blob代表「Binary Large OBject」。插入的數據應該是二進制的,例如圖像,而不是base64編碼。您可以使用base64在傳輸過程中對數據進行編碼,但應將其存儲在blob字段中時進行解碼。 –

+0

@JonathanKuhn所以如果我爲列提供了一個'File'參數,那麼可以嗎? –

回答

3

如何存儲二進制大對象(BLOB)?

  • BLOB是二進制大對象,可以容納 數據數量可變。四種BLOB類型是TINYBLOB,BLOB,MEDIUMBLOBLONGBLOB
  • 這些不同之處僅在於它們可以容納的值的最大長度。
  • 四種文本類型是TINYTEXT,TEXT,MEDIUMTEXTLONGTEXT。這些對應於四種BLOB類型,並具有相同的最大長度和存儲要求。

希望下面的代碼將幫助您:

CREATE TABLE IMAGE_TABLE(
    IMG_ID INT(6) NOT NULL AUTO_INCREMENT PRIMARY KEY, 
    IMG_DETAILS CHAR(50), 
    IMG_DATA LONGBLOB, 
    IMG_NAME CHAR(50), 
    IMG_SIZE CHAR(50), 
    IMG_TYPE CHAR(50) 
); 

這將創造出適合您需求的表。

您也可以參考下面的SO答案:

您可以參閱official documentation here. This linkthis link將是值得一讀,以加深你理解。