整合營(yíng)銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          【MinIO 上傳的圖片,打開(kāi)鏈接默認(rèn)是下載的問(wèn)題】

          MinIO 上傳的圖片,打開(kāi)鏈接默認(rèn)是下載的問(wèn)題

          項(xiàng)目中使用MinIO作為文件服務(wù)器,上傳圖片,拿到鏈接后瀏覽器打開(kāi)直接下載

          我們想要的效果是打開(kāi)鏈接后預(yù)覽圖片,而不是下載。

          為什么有的圖片鏈接在瀏覽器打開(kāi)是預(yù)覽顯示內(nèi)容,而有的則是直接下載?關(guān)鍵就在于Content-Type上

          這就需要?jiǎng)觿?dòng)生銹的大腦思考了 …

          關(guān)于的頭部信息Content-Type

          Content-Type: /octet-stream

          /octet-stream 告訴瀏覽器這是一個(gè)附件,瀏覽器會(huì)直接進(jìn)行下載,而不是預(yù)覽,只有image/png或者image/jpeg這種的的才會(huì)進(jìn)行預(yù)覽,展示圖片內(nèi)容。

          在這里插入圖片描述

          咱只需要將Content-Type修改為 image/jpeg就ok了。

          服務(wù)器生成圖片返回到前端可以在上設(shè)置content-type,但這個(gè)是上傳到文件服務(wù)器MinIo,訪問(wèn)的直接是文件服務(wù)器,并不經(jīng)過(guò)我們后臺(tái)服務(wù),應(yīng)該怎么設(shè)置?

          于是我去了MinIO的控制臺(tái),點(diǎn)擊各種按鈕,想找找有沒(méi)有可以設(shè)置訪問(wèn)鏈接時(shí)頭部設(shè)置的,然而并沒(méi)有找到任何可以設(shè)置的東西… 頭大呀,好不容易有了思路,又給澆滅了。

          不過(guò)我相信總是有辦法的,有句話說(shuō)得好,辦法總比苦難多嘛。

          既然MinIO控制臺(tái)不能設(shè)置,咱能不能在上傳之前就指定呢? 想實(shí)現(xiàn)這一點(diǎn),關(guān)鍵在于MinIO得支持呀。

          所以呢就去上傳方法那里找了找,看有沒(méi)有其它參數(shù)!

          在這里插入圖片描述

          點(diǎn)一點(diǎn),還真有,這不就是設(shè)置嗎。 哈哈,終于找到解決方案了,開(kāi)始碼代碼測(cè)試,最終呢測(cè)試有效,下面就是設(shè)置方法,各位看官僅供參考。

          解決辦法:

          這里以MinIO上傳為例,直接上代碼:

              /**
               * 通過(guò)流上傳文件
               *
               * @param bucketName  存儲(chǔ)桶
               * @param objectName  文件對(duì)象
               * @param inputStream 文件流
               */
              public ObjectWriteResponse uploadFile(String bucketName, String objectName, InputStream inputStream) throws Exception {
                  createBucket(bucketName);
                  return minioClient.putObject(
                          PutObjectArgs.builder()
                                  .bucket(bucketName)
                                  .object(objectName)
                                  .contentType(ViewContentTypeEnum .getContentType(objectName))
                                  .stream(inputStream, inputStream.available(), -1)
          

          瀏覽器下載鏈接打不開(kāi)_瀏覽鏈接器下載打開(kāi)不了_瀏覽鏈接器下載打開(kāi)沒(méi)反應(yīng)

          .build()); }

          public enum ViewContentTypeEnum {
              DEFAULT("default","application/octet-stream"),
              PNG("png", "image/png"),
              JPEG("jpeg", "image/jpeg"),
              JPG("jpg", "image/jpeg"),
              GIF("gif", "image/gif"),
              WBMP("wbmp", "image/vnd.wap.wbmp"),
              TIFF("tiff", "image/tiff"),
              JFIF("jfif", "image/jpeg"),
              TIF("tif", "image/tiff"),
              FAX("fax", "image/fax"),
              JPE("jpe", "image/jpeg"),
              NET("net", "image/pnetvue"),
              RP("rp", "image/vnd.rn-realpix"),
              ICO("ico", "image/x-icon");
              private String prefix;
              private String type;
              private static final Map<String, ViewContentTypeEnum> ENUM_MAP = new HashMap<>();
              static {
                  ViewContentTypeEnum[] values = values();
                  for (ViewContentTypeEnum value : values) {
                      ENUM_MAP.put(value.getPrefix(), value);
                  }
              }
              public static String getTypeByPrefix(String prefix) {
          

          瀏覽鏈接器下載打開(kāi)沒(méi)反應(yīng)_瀏覽鏈接器下載打開(kāi)不了_瀏覽器下載鏈接打不開(kāi)

          ViewContentTypeEnum viewContentTypeEnum = ENUM_MAP.get(prefix); if (viewContentTypeEnum == null) { return prefix; } return viewContentTypeEnum.getType(); } public static String getContentType(String prefix){ if(StringUtils.isEmpty(prefix)){ return DEFAULT.getType(); } prefix = prefix.substring(prefix.lastIndexOf(".") + 1); String type = getTypeByPrefix(prefix); if (StringUtils.isNotEmpty(type)) { return type; } return DEFAULT.getType(); } ViewContentTypeEnum(String prefix, String type) { this.prefix = prefix; this.type = type; } public String getPrefix() { return prefix; } public String getType() { return type; } }

          .(.()) 是核心,在上傳直接設(shè)置content-type就可以了。

          QQ上的鏈接無(wú)法打開(kāi)

          QQ上的鏈接無(wú)法打開(kāi)的解決辦法:選擇一個(gè)常用的瀏覽器設(shè)置為默認(rèn)瀏覽器就可以啦。

          設(shè)置默認(rèn)瀏覽器步驟如下:

          1、Windows XP系統(tǒng)點(diǎn)擊左下角-開(kāi)始–控制面板–添加或刪除程序–(左側(cè))設(shè)定程序訪問(wèn)和默認(rèn)值–選擇自定義,點(diǎn)擊右側(cè)下拉選項(xiàng)打開(kāi)–選擇一個(gè)默認(rèn)的瀏覽器–“使用當(dāng)前的瀏覽器”選上,同時(shí)在需要使用的瀏覽器后面選上“啟用對(duì)程序的訪問(wèn)”。

          1、如果裝了ie瀏覽器,也可以這樣設(shè)置:打開(kāi)ie瀏覽器—打開(kāi)菜單欄上的“工具”選項(xiàng)–選項(xiàng)–程序–默認(rèn)的瀏覽器–將 瀏覽器設(shè)置為默認(rèn)值。借助第三方軟件修復(fù)方法/步驟:打開(kāi)“360安全衛(wèi)士” —“系統(tǒng)修復(fù)—點(diǎn)擊“電腦門診”—“常用軟件”第二頁(yè),然后點(diǎn)擊立即修復(fù)“QQ面板鏈接打不開(kāi)”選項(xiàng),點(diǎn)“立即修復(fù)”即可。

          瀏覽器下載鏈接打不開(kāi)_瀏覽鏈接器下載打開(kāi)不了_瀏覽鏈接器下載打開(kāi)沒(méi)反應(yīng)

          瀏覽鏈接器下載打開(kāi)不了_瀏覽器下載鏈接打不開(kāi)_瀏覽鏈接器下載打開(kāi)沒(méi)反應(yīng)

          瀏覽鏈接器下載打開(kāi)沒(méi)反應(yīng)_瀏覽鏈接器下載打開(kāi)不了_瀏覽器下載鏈接打不開(kāi)

          其他解決方法:

          出現(xiàn)此情況,是由于安裝過(guò)不同的瀏覽器或者瀏覽器被劫持(病毒木馬導(dǎo)致),使用鏈接無(wú)法識(shí)別默認(rèn)瀏覽器導(dǎo)致。

          1、嘗試清空IE緩存;(操作方法:打開(kāi)瀏覽器,點(diǎn)擊“工具”->“選項(xiàng)”->“刪除Cookies”和“清除歷史記錄”,再點(diǎn)擊“確定”即可)

          瀏覽器下載鏈接打不開(kāi)_瀏覽鏈接器下載打開(kāi)沒(méi)反應(yīng)_瀏覽鏈接器下載打開(kāi)不了

          2、把使用的瀏覽器設(shè)為默認(rèn)瀏覽器;(操作方法:以TT瀏覽器為例,打開(kāi)TT瀏覽器,點(diǎn)擊“工具”->“TT選項(xiàng)”->“綜合設(shè)置”->“默認(rèn)瀏覽器”中選中“TT瀏覽器”點(diǎn)擊“保存”即可)

          3、若通過(guò)以上方法仍無(wú)法成功,請(qǐng)嘗試重新下載QQ軟件,下載地址: 。

          A、可先將之前的QQ版本卸載(請(qǐng)先做好聊天等記錄備份,以免丟失)——再重啟計(jì)算機(jī)——重新下載官方網(wǎng)站 提供的QQ最新版本——安裝到與之前QQ版本不同的路徑;

          B、請(qǐng)登錄 下載新版的TT瀏覽器,并將其設(shè)置為默認(rèn)瀏覽器使用(設(shè)置方法為:打開(kāi)TT瀏覽器后的上方“工具”--TT選項(xiàng)--綜合設(shè)置--選擇“Tencent ”為默認(rèn)瀏覽器即可);

          C、請(qǐng)退出QQ后重新登錄,再?gòu)腝Q客戶端進(jìn)入QQ空間查看。


          主站蜘蛛池模板: 一区二区视频在线播放| 久久青草国产精品一区| 日本欧洲视频一区| 精品国产免费一区二区| 国产色综合一区二区三区| 国产成人一区二区三区高清| 日本免费一区二区三区四区五六区 | 少妇无码一区二区三区免费| 国产无人区一区二区三区 | 国产午夜福利精品一区二区三区| 免费无码A片一区二三区| 久久一本一区二区三区| 精品人体无码一区二区三区| 在线免费视频一区| 国产91精品一区二区麻豆网站| 国产一区二区三区在线影院 | 亚洲一区二区电影| 一区二区不卡久久精品| 亚洲AV无码一区二区三区鸳鸯影院| 久久99精品国产一区二区三区| www一区二区三区| 精品一区二区三区无码免费直播| 精品国产一区二区三区无码| 国产AV午夜精品一区二区三区| 国产精品亚洲高清一区二区| 相泽南亚洲一区二区在线播放| 中文字幕日韩精品一区二区三区| 国产免费一区二区三区不卡| 中文乱码精品一区二区三区 | 日产一区日产2区| 成人在线视频一区| 福利一区在线视频| 国产一区二区精品久久岳√| 日韩在线观看一区二区三区| 大帝AV在线一区二区三区| 久久久无码精品人妻一区| 精品欧美一区二区在线观看| 极品少妇一区二区三区四区| 日韩在线视频不卡一区二区三区| 日本精品一区二区三本中文| 一级特黄性色生活片一区二区|