HTML5 a tag force download

希望強制讓使用者下載檔案,但是在a標籤將網址指向檔案,在一些常用檔案例如:jpg、png、PDF,常會被瀏覽器直接開啟,無法直接下載,比較正規的做法是在發送 headers 時做這件事,但有時我們在處理靜態網頁就可以用偷吃步,在HTML5 a 標籤中多了一個download屬性,就可以用強制檔案用下載的方式讓使用者下載a標籤連結中的檔案,但這偷吃步要小心瀏覽器相容性

點我看效果 download PNG

[……]

閱讀更多

PHP 上傳檔案,自訂錯誤訊息,當超過php.ini post_max_size 限制時

PHP上傳檔案會受限於 php.ini post_max_size 的值,這非常合理,但在程式中檔案上傳超過 post_max_size 時會直接中斷檔案上傳動作,吐出一個Warning 

在正式環境中,通常會關閉錯誤報告,程式中試著用 $_POST and $_FILES 找上傳檔案超出 post_max_size 的線索,皆回傳空值,如此一來程式很難判斷發生了怎麼一回事,沒辦法回應使用者目前情況,影響使用者體驗

透過以下代碼,可以透過PHP判斷上傳檔案超出 post_max_size 的錯誤,以便在輸出的頁面告訴使用者發生什麼事,當然也可以修改它,做需要的錯誤處裡

[……]

閱讀更多

NTP Server Taiwan 網路時間協定伺服器

台灣國家時間與頻率標準實驗室 – NTP Server

參考:http://ww.stdtime.gov.tw/Time/ntp/resource.htm

Google – NTP Server

參考:https://developers.google.com/time/

Apple – NTP Server

微軟Microsoft – NTP Server

Facebook – NTP Server

參考:https://engineering.fb.com/production-engineering/ntp-service/

[……]

閱讀更多

綠界金流開發及測試環境

開發後台入口:

https://vendor-stage.ecpay.com.tw/User/LogOn_Step1

測試帳戶資訊

測試帳號 stagetest1234 測試密碼 test1234 測試統編 53538851

系統介接資訊

商店代號2000132

服務名稱介接 HashKey介接 HashIV金流、MPOS5294y06JbISpM5x9v77hoKGq4kWxNNIS電子發票ejCk326UnaZWKisgq9jcZX8Ib9LM8wYk物流5294y06JbISpM5x9v77hoKGq4kWxNNIS[……]

閱讀更多

JavaScript options object merge

這很有用喔,JavaScript 把零散程式封裝成插件時,會傳入物件相關選項 options,使封裝的程式因為選項 options 的屬性值不同而能實體化出更多可能。

建立封裝程式的選項 options 物件

為維持程式正常運行,通常都會建立一個預設值物件,在實體化的時候傳入一個選項 options 物件 ,與預設選項物件合併,後者覆蓋前者,以下為範例程式:

_default 為預設物件

options 為傳入物件

_options 為合併後物件

output:

options merge

如果兩個對象都有一個具有相同名稱的屬性,則第二個對象屬性將覆蓋第一個對象。

ES6在2015年引入了spread運算符【…】,這是將兩個簡單對象合併為一個的完美方法:

output:

參考資料:

https://stackoverflow.com/a/171256/6784662

[……]

閱讀更多

JavaScript import get Error : Cannot use import statement outside a module

JavaScript es6 有引入外部文件的功能 import

import 後得到一個錯誤

Uncaught SyntaxError: Cannot use import statement outside a module

解決方法

必須要宣告為js的模組,在引入js的script tag中加入type=”module” 這個屬性如下

[……]

閱讀更多

Google Map JavaScript API 語言切換

Google Map JavaScript API 產生地圖,預設是英文,雖然英文編排比較好看,哈,但真的要找路會瘋掉,地圖的用途還是讓使用者快速得到位置的資訊

切換成中文其實很簡單,初始化地圖前會引入 Google Map JavaScript API,在引入網址後方再多加入一個參數即可

引入 Google Map JavaScript API 長這樣

加入語言參數 language=zh-TW:

[……]

閱讀更多