PTT
Submit
Submit
選擇語言
正體中文
简体中文
PTT
C_and_CPP
[問題] 如何知道剛寫入的jpg檔有無毀損
作者:
hn12404988
(Willy)
2016-06-08 17:01:56
開發平台(Platform): GCC, Linux
額外使用到的函數庫(Library Used): 無
問題(Question):伺服器端接到裝置端傳回一組base64字串
decode完,用ofstream::open開了一個新的準備寫入檔案,再用ofstream::write寫入
成一個jpg檔,但為了防止有心人上傳一段假的base64字串,所以寫出來的jpg檔事實
上不是圖片檔,讀取會corrupt,請問我要如何再原本的main thread裡再以c++程式
檢測剛寫入的檔案,是否能讀取成功?
餵入的資料(Input):base64字串
預期的正確結果(Expected Output): 能判斷圖片檔寫入成功
錯誤結果(Wrong Output):
程式碼(Code):(請善用置底文網頁, 記得排版)
補充說明(Supplement):
作者:
MOONRAKER
(㊣牛鶴鰻毛人)
2016-06-08 18:00:00
裝imagemagick,用identify看他是圖檔還是什麼挖哥(當然你要用system()執行)
作者:
TobyH4cker
(Toby (我要當好人))
2016-06-08 20:35:00
然後就被黑了XD
作者:
winken2004
(新竹肥宅)
2016-06-08 20:39:00
檢查jpg header?
作者: LiloHuang (十年一刻)
2016-06-08 20:42:00
寬鬆的檢查,可看檔頭 SOI (FF D8) 檔尾 EOI (FF D9)
https://goo.gl/70pW4L
如果要嚴謹一點還是得把整個 JPEG structure 走一次system() 如果是公開伺服器得留意 command injection個人認為就是交給 jpeg decoder 來判斷就好用好一點的 JPEG library 讀資訊 (e.g. libjpeg-turbo)
作者:
Killercat
(殺人貓™)
2016-06-13 07:36:00
基本上JPG格式很鬆散 只要頭兩個位元是[255, 216]出來通常就不會corrupt, 頂多圖看起來是雜訊
繼續閱讀
Re: C/C++ 語言新手十三誡 -- Ver. 2016
Hazukashiine
C/C++ 語言新手十三誡 -- Ver. 2016
wtchen
[問題] 一維陣列 基礎問題請益
death811125
[問題] 新手問#include
Beatles5566
[問題] Windows Driver 請求問題
tsukiyo99
Re: [問題]Float的資料用Char的Buffer傳輸
chuegou
[問題] 8051 XBPSTACKTOP 設定
clarkman
Re: [問題]Float的資料用Char的Buffer傳輸
wxtab019
[心得] c++ 11 的 move semantic
descent
[問題] 求給OpenGL初學者的書籍
wawi2
Links
booklink
Contact Us: admin [ a t ] ucptt.com