国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

沒有文件服務(wù)器,頭像存哪里合適

這篇具有很好參考價(jià)值的文章主要介紹了沒有文件服務(wù)器,頭像存哪里合適。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

沒有文件服務(wù)器,頭像存哪里合適

視頻在bilibili:沒有文件服務(wù)器,頭像存哪里合適

1. 背景

之前有同學(xué)私信我說,他的項(xiàng)目只是想存?zhèn)€頭像,沒有別的文件存儲(chǔ)需求,不想去用什么Fastdfs之類的方案搭建文件服務(wù)器,有沒有更簡(jiǎn)單且無需后期維護(hù)的方案,我喝了一口過期的開水,想了下,還真有,現(xiàn)在就給大家介紹一下。

這個(gè)方案就是把頭像存在表里,但是要切記,不要存大圖,否則會(huì)嚴(yán)重影響數(shù)據(jù)庫性能,怎么確保這一點(diǎn)呢,其實(shí)只要對(duì)上傳的圖片轉(zhuǎn)成縮略圖就可以保證存進(jìn)去的是小圖,這樣的話這個(gè)方案就比較完美了。

2. 關(guān)鍵步驟梳理

2.1 數(shù)據(jù)庫設(shè)計(jì)

字段的類型應(yīng)該是blob, blob是一種二進(jìn)制存儲(chǔ)類型,用來存儲(chǔ)圖片完全是沒問題的

沒有文件服務(wù)器,頭像存哪里合適,spring boot,java,文件存儲(chǔ)

2.2 后端接口

  1. Controller

    @Operation(summary = "修改頭像")
    @PostMapping("/avatar")
    public Result<?> updateAvatar(MultipartFile file, @RequestParam("userId") Integer userId) throws IOException, SQLException {
    
        // 讀取上傳的原始圖片
        BufferedImage originalImage = ImageIO.read(file.getInputStream());
    
        // 創(chuàng)建縮略圖
        int thumbnailSize = 200;
    
        // 計(jì)算縮略圖的寬度和高度,保持原寬高比例
        int newWidth, newHeight;
        if (originalImage.getWidth() > originalImage.getHeight()) {
            newWidth = thumbnailSize;
            newHeight = thumbnailSize * originalImage.getHeight() / originalImage.getWidth();
        } else {
            newWidth = thumbnailSize * originalImage.getWidth() / originalImage.getHeight();
            newHeight = thumbnailSize;
        }
    
        // 創(chuàng)建縮略圖
        BufferedImage thumbnail = new BufferedImage(newWidth, newHeight, BufferedImage.TYPE_INT_RGB);
        Graphics2D graphics2D = thumbnail.createGraphics();
        graphics2D.drawImage(originalImage, 0, 0, newWidth, newHeight, null);
        graphics2D.dispose();
    
        // 裁剪成以圖片中心為中心的正方形,因?yàn)榍岸耸且哉叫物@示
        int x = 0;
        int y = 0;
        int cropSize = Math.min(newWidth, newHeight);
        if (newWidth > newHeight) {
            x = (newWidth - cropSize) / 2;
        } else {
            y = (newHeight - cropSize) / 2;
        }
        thumbnail = thumbnail.getSubimage(x, y, cropSize, cropSize);
    
    
    
        ByteArrayOutputStream bs = new ByteArrayOutputStream();
        ImageIO.write(thumbnail, "jpg", bs);
        byte[] thumbnailBytes = bs.toByteArray();
    
        userService.updateAvatar(userId,thumbnailBytes);
        return Result.success();
    }
    
    
    
    @Operation(summary = "查詢頭像")
    @GetMapping("/avatar")
    public Result<?> getAvatar(@RequestParam("userId") Integer userId){
        byte[] arvatarData =  userService.getAvatar(userId);
        return Result.success(arvatarData);
    }
    
  2. Service

    @Override
    public void updateAvatar(Integer userId, byte[] avatar) throws SQLException {
        log.debug("avatar: " + avatar.length);
        SerialBlob avatarBlob = new SerialBlob(avatar);
        userMapper.updateAvatar(userId,avatarBlob);
    }
    
    @Override
    public byte[] getAvatar(Integer userId) {
        User user = userMapper.selectById(userId);
        return user.getAvatarData();
    }
    
  3. Mapper

    @Update("update wj_user set avatar_data=#{avatarBlob} where id = #{userId}")
    void updateAvatar(Integer userId, Blob avatarBlob);
    

3 前端關(guān)鍵代碼

沒有文件服務(wù)器,頭像存哪里合適,spring boot,java,文件存儲(chǔ)文章來源地址http://www.zghlxwxcb.cn/news/detail-861393.html

到了這里,關(guān)于沒有文件服務(wù)器,頭像存哪里合適的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 2023騰訊云服務(wù)器雙十一優(yōu)惠價(jià)格表看看合適不?

    2023騰訊云雙十一優(yōu)惠活動(dòng)服務(wù)器特價(jià)多配置報(bào)價(jià)2核2G3M、2核2G4M、2核4G5M、2核4G5M、4核8G12M、8核16G18M和16核32G28M,目前騰訊云雙11價(jià)格還沒出來,阿騰云根據(jù)目前2核2G3M配置95元一年預(yù)測(cè)雙11價(jià)格可能是88元一年,整理大概有個(gè)10%的優(yōu)惠幅度,阿騰云atengyun.com來預(yù)測(cè)下2023年騰訊云

    2024年02月07日
    瀏覽(25)
  • 顯卡服務(wù)器的特點(diǎn)和優(yōu)勢(shì)在哪里

    隨著科技的發(fā)展以及人們對(duì)于計(jì)算機(jī)性能的需求提高,顯卡服務(wù)器是主要使用圖形處理器進(jìn)行計(jì)算和運(yùn)算,擁有更加強(qiáng)大的計(jì)算能力,今天小編就來給大家講一講顯卡服務(wù)器的特點(diǎn)和優(yōu)勢(shì)是什么! 1.高可靠性:顯卡服務(wù)器采用高品質(zhì)的硬件和軟件的組合,所以在長(zhǎng)時(shí)間內(nèi)都可

    2024年02月06日
    瀏覽(21)
  • 微信小程序新版頭像昵稱API [保存用戶頭像到服務(wù)器]

    微信小程序新版頭像昵稱API [保存用戶頭像到服務(wù)器]

    ?根據(jù)微信官方文檔的說法,2022年10月之后,原本的獲取昵稱和頭像的api,也就是wx.getUserProfile和wx.getUserInfo將停止支持,在那之后發(fā)布和更新的小程序必須停止使用這兩個(gè)api。 ?這兩個(gè)api獲得的用戶頭像均為一個(gè)url,指向網(wǎng)絡(luò)上的一個(gè)頭像圖片。前端獲取該鏈接后可通過wx.

    2024年02月13日
    瀏覽(17)
  • 騰訊云服務(wù)器配置怎么選擇?CPU內(nèi)存帶寬系統(tǒng)盤如何選合適?

    騰訊云服務(wù)器配置包括CPU內(nèi)存、公網(wǎng)帶寬和系統(tǒng)盤,云服務(wù)器分為CVM服務(wù)器和輕量應(yīng)用服務(wù)器,騰訊云服務(wù)器網(wǎng)來詳細(xì)說下騰訊云服務(wù)器配置怎么選擇?到底是選擇云服務(wù)器CVM還是輕量應(yīng)用服務(wù)器?CPU內(nèi)存選擇幾核幾G?公網(wǎng)帶寬多大合適?云服務(wù)器系統(tǒng)盤類型怎么選擇? 目

    2024年02月11日
    瀏覽(29)
  • 服務(wù)器中E5和I9的區(qū)別是什么,如何選擇合適的配置

    服務(wù)器中E5和I9的區(qū)別是什么,如何選擇合適的配置

    隨著科技的進(jìn)步,服務(wù)器處理器的性能在不斷攀升。其中,Intel的E5和I9系列處理器在業(yè)界具有廣泛的影響力。而當(dāng)我們?cè)谶x擇服務(wù)器的時(shí)候會(huì)有各種各樣的配置讓我們眼花繚亂不知道該怎么去選擇,下面我跟大家分享一下E5跟I9有什么區(qū)別,方便我們?cè)谶x擇的時(shí)候有一個(gè)方向去

    2024年01月24日
    瀏覽(29)
  • 【解決方法】錯(cuò)誤:無法和SFTP服務(wù)器建立FTP連接,請(qǐng)選擇合適的協(xié)議

    【解決方法】錯(cuò)誤:無法和SFTP服務(wù)器建立FTP連接,請(qǐng)選擇合適的協(xié)議

    在家連實(shí)驗(yàn)室的服務(wù)器時(shí),出現(xiàn)了如下的情況:當(dāng)時(shí)一直在想為啥協(xié)議不合適。 1. 點(diǎn)擊【文件】-【站點(diǎn)管理器】,出現(xiàn)如下界面: 可能你的那里沒有新站點(diǎn),如果沒有就點(diǎn)擊新站點(diǎn)哦。 2. 點(diǎn)擊【協(xié)議】,選擇【SFTP-SSH File Transform Protocol】協(xié)議。 ? 3. 輸入【IP地址】和【端口

    2024年02月06日
    瀏覽(50)
  • Spring boot實(shí)現(xiàn)上傳文件至本地或服務(wù)器

    大家好 我是程序猿小張 圖片文件上傳是項(xiàng)目中必不可少的一個(gè)功能,上傳的地址也當(dāng)然是優(yōu)先選擇第三方的對(duì)象存儲(chǔ),例如七牛云、阿里云等等,但是當(dāng)中的話只有七牛云是有一個(gè)免費(fèi)額度的,其他都是要收錢的。所以就想著,哎,這個(gè)能不能上傳到本地呢?答案是肯定可

    2024年02月11日
    瀏覽(98)
  • Spring MVC異步上傳、跨服務(wù)器上傳和文件下載

    Spring MVC異步上傳、跨服務(wù)器上傳和文件下載

    之前的上傳方案,在上傳成功后都會(huì)跳轉(zhuǎn)頁面。而在實(shí)際開發(fā)中,很多情況下上傳后不進(jìn)行跳轉(zhuǎn),而是進(jìn)行頁面的局部刷新,比如:上傳頭像成功后將頭像顯示在網(wǎng)頁中。這時(shí)候就需要使用異步文件上傳。 編寫JSP頁面,引入jQuery和jQuery表單上傳工具jquery.form.js【該js文件已經(jīng)

    2024年02月16日
    瀏覽(31)
  • react18中antd的Upload組件上傳頭像,并且拿到服務(wù)器返回的頭像的url地址在頁面中顯示頭像

    react18中antd的Upload組件上傳頭像,并且拿到服務(wù)器返回的頭像的url地址在頁面中顯示頭像

    業(yè)務(wù)需求:上傳頭像,上傳完畢后拿到頭像的url,把頭像展示在頁面中,最終把頭像url和其他用戶信息一起發(fā)送給服務(wù)器 ? 上傳頭像流程 ? 導(dǎo)入 Upload 組件和圖標(biāo)(一個(gè)加號(hào),一個(gè)加載中) ? 定義狀態(tài) ? 定義一個(gè)上傳狀態(tài)組件,上傳前顯示 + 號(hào),上傳時(shí)顯示loading ? 組件代碼(

    2023年04月22日
    瀏覽(26)
  • 適用于深度學(xué)習(xí)的GPU服務(wù)器選RTX4090與RTX3090哪個(gè)更合適、更劃算?

    適用于深度學(xué)習(xí)的GPU服務(wù)器選RTX4090與RTX3090哪個(gè)更合適、更劃算?

    一、弄清基本參數(shù)對(duì)比 RTX 4090 具有 760 億個(gè)晶體管、16384 個(gè) CUDA 核心和 24 GB 高速美光 GDDR6X 顯存, 4090單精度浮點(diǎn)73TFLOPs RTX 3090 ,搭載了 10496 個(gè)流處理器與 24G GDDR6X 顯存,帶寬為 936GB/S。 3090單精度浮點(diǎn)35.7TFLOPs ? 二、以同等算力的情況做簡(jiǎn)單的對(duì)比 簡(jiǎn)單給大家算一下, 從單

    2024年02月17日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包