上節課我們寫了一個socket服務,通過瀏覽器可以連接我們的socket 只要在瀏覽器輸入正確的地址(地址存在資源文件夾下面編譯之后生成到target目錄) 然后我們通過程序去尋找文件是否存在(文件怎么找的是根據瀏覽器發送的http協議內容后面跟的地址)
由于上節課是以字符串的格式讀取的文件 所以如果我們要讀取一張圖片 上節課的代碼就會出現問題
這節課我們解決一下
首先我們在資源文件夾下放一張圖片abc.jpg
image.png
編譯一下代碼
瀏覽器輸入localhost:9000/abc.jpg
image.png
出現了圖片下載 并且下載的圖片無法打開
這時因為我們上節課讀取文件是以字符串格式讀取的
之前的課程中我們學過 純文本可以讀取成字符串 二進制文件要以字節的方式讀取
下面改造一下代碼
只要把字節原樣輸出就可以了
來到Response
寫一個方法的重載(參數不同即可)
image.png
上面代碼我們得到了http請求頭的字節數組了
需要將請求體字節數組和請求頭字節數組拼接
所以需要學習下面的一些內容
image.png
image.png
Response重寫的方法代碼
image.png
接下來修改一下WritePage方法
image.png
編譯一下代碼
在瀏覽器輸入localhost:9000
可以看見正常輸出這是我們的首頁
接下來輸入localhost:9000/abc.jpg
結果如下
image.png
可以看見我們在資源文件夾下的圖片訪問到了
為什么之前沒修改代碼之前輸入localhost:9000/abc.jpg
是出現的圖片下載 雖然下載了但是卻打不開
這時需要了解http協議里的content-type
image.png
接下來演示下如何讓圖片支持下載而不是顯示在瀏覽器中
image.png
image.png
image.png
運行結果
image.png
image.png
輸入localhost:9000/abc.jpg 可以發現圖片下載了并能打開