<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>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                ## 上傳表如何設計 >[info] 我們希望將每次上傳的文件記錄在表中,這樣有很多作用,比如根據 MD5/HASH 實現圖片上傳時的去重,還可以用在業務字段中,很方便,管理上傳資源也會很方便。 但是這樣的一張表要如何設計呢? 我們先來看基本的上傳文件URL **上傳文件 URL如何存儲?** ``` https://img30.360buyimg.com/n0/s616x405_jfs/t3856/64/1821196656/118766/f30bddd8/5899ac63N2b32c298.jpg 這是京東的用戶曬圖圖片地址 http://yuanchuan.tenpower.club/uploads/20170331/20853c0d06e363d7509825a80e9846b6.jpg 這是禮品平臺的圖片上傳地址 ``` **其實可分為** ``` 協議 + 主機 + 域名 + 業務目錄 + 上傳時產生的動態目錄 [ https:// ] + [ img30. ] + [ 360buyimg.com/ ] + [ n0/s616x405_jfs/ ] + [ t3856/64/1821196656/118766/f30bddd8/5899ac63N2b32c298.jpg ] [ http:// ] + [ yuanchuan. ] + [ tenpower.club/ ] + [ uploads/ ] + [ 20170331/20853c0d06e363d7509825a80e9846b6.jpg ](這部分也是目前我們數據庫中存的部分) 京東那個圖片是動態的 https://img30.360buyimg.com/n0/s616x45_jfs/t3856/64/1821196656/118766/f30bddd8/5899ac63N2b32c298.jpg 可以改變大小 ``` **可以知道這部分是動態的,應該不會存** ``` 還要也要考慮CDN,一張圖片分發到什么機器上去了 (想錯了,CDN是自動的,并不會要求改變網址,所以網址應該是固定的) ``` **那么結論:** 需要存: 能代表這個文件的真是地址的url也就是 主機和包含路徑的文件名 即 ``` 還是: 協議 + 主機 + 域名 + 業務目錄 + 上傳時產生的動態目錄 ``` 但是為了靈活性,比如業務目錄調整啊,網址變更啊,所以這些應分開存在不同的字段中 ``` 完整URL = 協議 + 主機 + 域名 + 業務目錄 + 上傳時產生的動態目錄 url = agreement + host + domain + business_directory + file ``` **那么我們設計的表應該是:** 表名:`tb_uploads` | 字段名 | 說明 | | --- | --- | | id | 自增ID | | agreement | 協議 | | host | 主機 | | domain | 一級域名 | | business_directory | 業務目錄 | | file | 動態文件地址 | | create_time | 創建時間 | | create_ip | 創建IP | | user_id | 用戶ID,默認0表示上傳者未登錄(不過由于去重機制,這只是第一次上傳此文件的用戶ID,實際上由于去重,此表也只會記錄第一個上傳信息) | | md5 | 文件MD5 | | hash | 文件HASH | | size | 文件大小 | | width| 圖片高度(僅圖片文件有這個值) | | height| 圖片高度(僅圖片文件有這個值) | *(根據業務邏輯還可以劃分出一個附件表)* * * * * * ### 擴展 **獲取圖片的url可訪問地址** ~~~php /** * 默認可以壓縮上傳的文件 * 對上傳文件顯示前進行的url轉換/處理 * 如果是有協議的 http:// https:// …… 或者 不限協議 //url 這樣的 直接返回 * 如果是 / 以 域名為頂級 的 給加上域名即可 * 否則和 config('uploads_url') 拼接 * @param string $value 待處理的地址 * @return string 處理后的地址 */ function media($value, $max_quality = 60) { $void = Request::instance()->root(true) . '/static/images/void.jpg'; if ($value == '') { return $void; } if (strpos($value, '://') || 0 === strpos($value, '//')) { return $value; } if (0 === strpos($value, '/')) { return Request::instance()->domain() . $value; } // 那么就是上傳圖片了 if (!file_exists(config('base_uploads_path') . $value)) { return $void; } return config('uploads_url') . getSmallImg($value, $max_quality); } ~~~ last update :2017-6-1 10:51:39
                  <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>

                              哎呀哎呀视频在线观看