.net core 實現默認圖片

web 上 如果圖片不存在 一般是打xx ?這時候 一般都是會設置默認的圖片 代替 ? 現在用中間件的方式實現統一設置 ? 一次設置 全部作用?

.net core 實現默認圖片

?

Startup 文件

 app.UseDefaultImage(defaultImagePath: Configuration.GetSection("defaultImagePath").Value);

  新建類

using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Http;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Threading.Tasks;namespace conan.Saas.Framework.Middlewares
{public class DefaultImageMiddleware{private readonly RequestDelegate _next;public static string DefaultImagePath { get; set; }public DefaultImageMiddleware(RequestDelegate next){this._next = next;}public async Task Invoke(HttpContext context){await _next(context);if (context.Response.StatusCode == 404){var contentType = context.Request.Headers["accept"].ToString().ToLower();if (contentType.StartsWith("image")){await SetDefaultImage(context);}}}private async Task SetDefaultImage(HttpContext context){try{string path = Path.Combine(Directory.GetCurrentDirectory(), DefaultImagePath);FileStream fs = File.OpenRead(path);byte[] bytes = new byte[fs.Length];await fs.ReadAsync(bytes, 0, bytes.Length);//this header is use for browser cache, format like: "Mon, 15 May 2017 07:03:37 GMT". //context.Response.Headers.Append("Last-Modified", $"{File.GetLastWriteTimeUtc(path).ToString("ddd, dd MMM yyyy HH:mm:ss")} GMT");await context.Response.Body.WriteAsync(bytes, 0, bytes.Length);}catch (Exception ex){await context.Response.WriteAsync(ex.Message);}}}public static class DefaultImageMiddlewareExtensions{public static IApplicationBuilder UseDefaultImage(this IApplicationBuilder app, string defaultImagePath){DefaultImageMiddleware.DefaultImagePath = defaultImagePath;return app.UseMiddleware<DefaultImageMiddleware>();}}
}

  

appsettings.json 添加路徑

?

?"defaultImagePath": "wwwroot\\DefaultImage.png",

?

?最后 在?wwwroot ? 放張 ?DefaultImage.png圖片 ?即可

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/280163.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/280163.shtml
英文地址,請注明出處:http://en.pswp.cn/news/280163.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

spring cloud config將配置存儲在數據庫中

轉載請標明出處&#xff1a; https://blog.csdn.net/forezp/...本文出自方志朋的博客 Spring Cloud Config Server最常見是將配置文件放在本地或者遠程Git倉庫&#xff0c;放在本地是將將所有的配置文件統一寫在Config Server工程目錄下&#xff0c;如果需要修改配置&#xff0…

VMware虛擬機VMware Authorization Service不能啟動問題

出現VMware Authorization Service不能啟動問題&#xff0c;注意要在安裝VMware Player時使用管理員權限轉載于:https://www.cnblogs.com/mingzhang/p/9152873.html

PHP替換回車換行的三種方法

一個小小的換行&#xff0c;其實在不同的平臺有著不同的實現&#xff0c;為什么要這樣&#xff0c;世界是多樣的&#xff01;本來在Unix世界換行用/n來代替換行&#xff0c;Windows為了體現不同&#xff0c;就用/r/n&#xff0c;更有意思的是&#xff0c;Mac中又用了/r。所以&a…

全球的weex資源都在這里

WeeX FAQ QQ: Weex大前端 516682889Weexbox&#xff1a; 943913583WeeX相關資源 weex官方資源 weex官網 Weex Market 已掛 : 一個提供 Weex 第三方組件的網站&#xff0c;您可以在這里找到你需要的 Weex 組件。 Playground : Playground在線&#xff0c;直接在線編寫代碼并預覽…

初步解決博客園代碼高亮的一個方案

今天我要推薦的是一個免費而且支持markdown語法的軟件——Typora 它有很多優點&#xff0c;支持多種類型代碼的高亮風格&#xff0c;方便的排版處理&#xff0c;支持Latex等&#xff0c;最重要的一點是真正做到了所見即所得ヽ(&#xff9f;?&#xff9f;)&#xff92;(&#x…

git工作原理

工作區&#xff1a;就是你在電腦里能看到的目錄。暫存區&#xff1a;英文叫stage, 或index。一般存放在 ".git目錄下" 下的index文件&#xff08;.git/index&#xff09;中&#xff0c;所以我們把暫存區有時也叫作索引&#xff08;index&#xff09;。版本庫&#xf…

【前端基礎進階】JS-Object 功能詳解

Object.assign(target,source1,source2,...)該方法主要用于對象的合并&#xff0c;將源對象source的所有可枚舉屬性合并到目標對象target上,此方法只拷貝源對象的自身屬性&#xff0c;不拷貝繼承的屬性。Object.assign方法實行的是淺拷貝&#xff0c;而不是深拷貝。也就是說&am…

解決“無法從套接字讀取更多數據”

重啟下Oralce服務即可。轉載于:https://www.cnblogs.com/fkeyta/p/9153297.html

網頁下載Google Play 的App

網頁下載Google Play 的App 文章目錄[點擊展開](?)[] 前言 當你想在google play上下載某個應用&#xff0c;而無奈手機的系統并沒有安裝google servicess&#xff0c;此刻是否有些捉急&#xff1f; 本文分享的是一個網站&#xff0c;它可以無需手機而直接通過網頁下載Google P…

“硬核”代碼重構

在學習編程的路上&#xff0c;相信大家這幾個詞一定不少聽&#xff0c;什么 面相對象、封裝繼承多態、內功心法21種設計模式 等等 。但是卻很少用到&#xff0c;或者說用到的都是被動使用。大牛們在寫代碼前早就構思好了&#xff0c;接口&#xff0c;基類等等。自己寫代碼的時候…

上傳jar包到nexus私服

進入maven管理頁面&#xff0c;登錄管理員賬號 完成后可以進入對應目錄下查看pom依賴 通過maven的方式depoly 在maven的conf/setting.xml 配置nexus私服的管理賬號 在servers標簽下添加server <server><id>nexus-snapshots</id><username>repouser<…

手把手教你寫高質量Android技術博客,畫圖工具,錄像工具,Markdown寫法

前言 作為程序員&#xff0c;寫博客是一件很有意義的事情&#xff0c;可以加深自己對技術的理解&#xff0c;可以結交更多的朋友&#xff0c;記錄自己的技術軌跡&#xff0c;而且分享可以讓更多的人從中受益&#xff0c;獨樂樂不如眾樂樂嘛。 但是要寫好博客也不是件容易的事&a…

【Android】RxJava的使用(四)線程控制 —— Scheduler

前言 經過前幾篇的介紹&#xff0c;對RxJava對模式有了一定的理解&#xff1a;由Observable發起事件&#xff0c;經過中間的處理后由Observer消費。&#xff08;對RxJava還不了解的可以出門左拐&#xff09;之前的代碼中&#xff0c;事件的發起和消費都是在同一個線程中執行&am…

sed: -e expression #1, unknown option to `s'解決辦法

報錯如下&#xff1a; sed: -e expression #1, char 13: unknown option to s 需要替換的行為&#xff1a; monitor.urlhttp://192.168.25.100:8443/rest 查詢資料得知&#xff0c;報錯是因為替換的字符串包含有分隔符/ 所以這行改一下分隔符就可以解決問題了 改成感嘆號!或者|…

Linux常用開發環境軟件-Redis安裝(docker環境下)

linux&#xff0c;docker安裝RabbitMQ版本 1、從docker官網倉庫下載安裝RabbitMQ鏡像 官網地址&#xff1a;https://hub.docker.com/ docker pull redis:4.0.8  //后面是版本,Tag Name 2、啟動Docker Redis鏡像 docker run -d -p 6379:6379 redis:4.0.8  啟動鏡像&#xff…

以當天日期時間,打包目錄

#備份/data目錄#!/bin/bash DATEdate %Y-%m-%d-%H:%M:%S tar cvf /mnt/resource/script/prod_master_data.$DATE.tar.gz /data[root111 script]# ll total 2536 -rw-r--r-- 1 root root 2590720 Feb 22 21:46 prod_master_data.2019-02-22-21:46:53.tar.gz轉載于:https://blog.…

lvs+keepalived詳解

常用軟件安裝及使用目錄 資源鏈接&#xff1a;https://pan.baidu.com/s/15rFjO-EnTOyiTM7YRkbxuA 網盤分享的文件在此 官網&#xff1a;http://www.linuxvirtualserver.org/index.html 中文資料 LVS項目介紹 http://www.linuxvirtualserver.org/zh/lvs1.html …

微信自動打卡

要有第二臺安卓 手機&#xff0c;打開usb、adb調試&#xff0c;永不鎖屏&#xff0c;永不休眠&#xff0c;手機安裝了微信并至少成功登陸過一次&#xff0c; 一臺不關機的電腦&#xff0c;手機連接電腦&#xff0c;Appium服務器保持啟動&#xff0c;在開始菜單 設定好任務計劃程…

利用反射做類參數的校驗

需求描述 業務需求描述&#xff1a;對webservice接口參數校驗 代碼實現 /*** 字符串長度校驗* * param str* param len* return 合法(true),不合法(false)*/public static boolean check(String str, int len) {if (null ! str && str.length() > len) {return fals…

跨域的四種方式

本文主要是關于跨域的幾種方式&#xff0c;關于什么是跨域這里就不多說了&#xff0c;寫這個也是為了記住一些知識點的。 一. jsonp jsonp的跨域方式很容易理解&#xff0c;頁面的的每一個script標簽瀏覽器都會發送get請求獲取對應的文本資源&#xff0c;獲取到了之后&#xff…