香蕉成人伊视频在线观看|学生小视频国产区|yy女主播啪啪啪视频|麻豆传播媒体APP大全免费版官网|瑜伽牲交AV|国产欧美日韩在线天堂区|白浆精品国产91

返回列表 發帖
查看: 4557|回復: 0

上傳圖片時檢測真實的文件類型,鑒別錯誤的擴展名

17

主題

85

回帖

3

粉絲

漸入佳境

貢獻
1 點
金幣
50 個
樓主
發表于 2019-7-13 19:57:08 |四川| 只看樓主 |倒序瀏覽 |閱讀模式


應用場景:JPG格式具有高壓縮率,更適于互聯網傳播,本站僅支持上傳JPG格式的圖片,但部分用戶會直接將 PNG 或 BMP 格式的圖片修改擴展名為 JPG,繞開系統限制。可采用以下方法進行檢測:

1、打開 source/class/discuz/discuz_upload.php 文件,查找:
  1. $attach['size'] = intval($attach['size']);
復制代碼
在其前方增加:
  1. $filename = $attach['tmp_name'];
  2. $file = fopen($filename, "rb");
  3. $bin = fread($file, 2);
  4. fclose($file);
  5. $strinfo = @unpack("C2chars", $bin);
  6. $typecode = intval($strinfo['chars1'].$strinfo['chars2']);
  7. if(in_array($typecode, array('7173', '6677', '13780'))) {
  8. $attach['unsupported_image_format'] = 1;
  9. }
復制代碼

2、打開 source/class/forum/forum_upload.php 文件,查找:
  1. loadcache('attachtype');
復制代碼

在其前方增加:
  1. if($upload->attach['unsupported_image_format'] == '1') {
  2.                         return $this->uploadmsg(51);
  3.                 }
復制代碼

3、打開 static/js/forum_post.js 文件,查找:        
  1. '11' : '今日您已無法上傳那么大的附件'
復制代碼

將其替換為:
  1. '11' : '今日您已無法上傳那么大的附件',
  2. '51' : '圖像格式不支持,請轉換為 .JPG'
復制代碼

更新緩存,刷新發帖頁面后測試(將一張PNG格式圖片的擴展名修改為JPG,上傳測試,失敗則表示成功)。

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

  • 關注公眾號
  • 有償服務微信
  • 有償服務QQ

手機版|小黑屋|Discuz! 官方交流社區 ( 皖ICP備16010102號 |皖公網安備34010302002376號 )|網站地圖|star

GMT+8, 2026-5-31 03:52 , Processed in 0.041982 second(s), 12 queries , Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2026 Discuz! Team.

關燈 在本版發帖
有償服務QQ
有償服務微信
返回頂部
快速回復 返回頂部 返回列表