<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ## 一、概述 比如業務中,有需要對某個實體設定圖片等媒體文件,并與實體進行關聯的業務,平臺也提供了解決方案; 針對圖像數據的存儲,平臺提供了兩種方案,分別是庫表保存和文件保存; ## 二、庫表保存方案 庫表保存方案是在庫表設計中,設計一個二進制字段來保存,可以是業務表中的二進制字段,也可以是通用的平臺單獨設計的專用圖片表字段; 如果已經在業務表中設計了存儲圖片的二進制字段,則使用該字段;如果業務表中沒有單獨設計字段,那就使用通用圖片表(SYS_PIC)來存儲; 具體的實現方案如下: ### **新增圖片** 新增的時候,直接跟普通字段一樣提交即可; #### 1、post對象提交 post中TeleChatbot對象里面的chatbotLogo字段; ``` TeleChatbot bot = post.getTeleChatbot(); TeleChatbot persisted = teleChatbotDao.save(bot); persisted.setChatbotLogoUrl(ShowMedia.url(MediaType.PIC, "TeleChatbot", "chatbotLogo", bot.getChatbotId())); ``` #### 2、單獨參數提交: logoFileBase64字段; ``` SysPic syspic = sysPicDao.getSysPicByPicCode("logo"); syspic.setContent(logoFileBase64.getBytes()); sysPicDao.save(syspic); ``` ### **修改圖片** #### 1、業務字段的: ``` SysStaffProfile profile = sysStaffProfileDao.getSysStaffProfileOfSpecStaff(staffObj.getStaffId()); this.preForcedLoadingLazyBlobFieldForUpdate(sysStaffProfileDao, profile, "photo"); profile.setPhoto(avator.getBytes()); sysStaffProfileDao.save(profile); profile.setAvatar(ShowMedia.url(MediaType.PIC, "SysStaffProfile", "photo", profile.getProfileId())); ``` >[danger] 特別注意: > 1、ShowMedia.url(MediaType.PIC, "SysStaffProfile", "photo", profile.getProfileId()),就能取得到存儲在數據庫中的媒體文件的訪問地址; > 2、上述地址可以存儲到庫表字段,也可以僅在顯示的時候,臨時構造即可; > 3、修改的時候,必須強制執行preForcedLoadingLazyBlobFieldForUpdate; #### 2、通用實體的: ``` SysPic syspic = sysPicDao.getSysPicByPicCode("logo"); if (syspic == null) { syspic = new SysPic(); syspic.setDomainId(1L); syspic.setPicCode("logo"); } this.preForcedLoadingLazyBlobFieldForUpdate(sysPicDao, syspic, "content"); syspic.setContent(logoFileBase64.getBytes()); sysPicDao.save(syspic); //該文件的url ShowMedia.getLogoMedia(pic.getPicId()) ``` ## 三、文件保存方案 有些業務場景中,使用庫表保存,僅理論可行,但考慮性能和可伸縮性,實際使用庫表保持并不是最優方案,比如電商業務; 那么,可以使用文件來保存,當然文件的存儲可以采用網絡存儲或本地解決方案,平臺提供了一個通用解決方案,后端可以通過參數來配置當前項目啟用本地存儲還是網絡存儲,它們都是以文件為存儲的形式,可以通過路徑直接訪問; 下面介紹一下本地存儲的技術方案,網絡存儲比較簡單,直接調用方案商提供的官方接口即可; 參考:[文件資源方案](%E6%96%87%E4%BB%B6%E8%B5%84%E6%BA%90%E6%96%B9%E6%A1%88.md)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看