1. buttonText 屬性設置中文無效的問題或加載速度慢(2秒左右)jquery
緣由:uploadify.js 中對使用escape()進行編碼,在uploadify.swf中使用unescape()進行解碼,js中的escape()方法是採用ISO Latin字符集對指定的字符串進行編碼的,很明顯我們的中文,包括日文,韓文(CJK)都不包括在ISO Latin字符集裏面的。函數
解決方法:編碼
A. 修改插件spa
修改uploadify.js插件
將 if (settings.buttonText) data.buttonText = escape(settings.buttonText);code
改成 if (settings.buttonText) data.buttonText = encodeURI(settings.buttonText);orm
修改uploadify.fla圖片
將 browseBtn.empty.buttonText.text = unescape(param.buttonText); utf-8
改成 browseBtn.empty.buttonText.text = decodeURI(param.buttonText); rem
而後從新生成uploadify.swf並拷入項目中
B. 使用 buttonImg 參數
顯然buttonImg是用來設置圖片按鈕的,本身作的圖片,沒編碼固然不會亂碼了,不過這個方法,按鈕顯示會有點慢,仍是比較推薦方法A.
2. FireFox中 上傳圖標看不見
緣由:沒有安裝Flash非IE內核的插件
解決方法:在FireFox中安裝最新版本的非IE內核的插件
3. onQueueFull 函數提示兩次
緣由:在uploadify.js中 157行已經彈出提示,因此在頁面中設置onQueueFull後會彈出兩次提示
解決方法:將uploadify.js中 alert('The queue is full. The max size is ' + queueSizeLimit + '.');刪除或將提示改成中文;
4. uploadify.js中的中文亂碼(不修改uploadify.js不會出現這種狀況)
緣由:編碼不統一,uploadify.js 採用UTF-8編碼,ASP.NET環境默認爲GB2312編碼
解決方法:引用 uploadify.js 時添加 charset="gb2312"
5. 上傳中文名稱的文件時,Http Error
緣由:在uploadify.swf中採用utf-8編碼並上傳圖片,ASP.NET默認GB2312編碼
解決方法:
A. 在HttpHander處理上傳圖片時,添加 context.Response.ContentEncoding = System.Text.Encoding.UTF8;
B. 在 Web.config 中添加以下代碼
<globalization fileEncoding="UTF-8" requestEncoding="UTF-8" responseEncoding="UTF-8"/>
6. 關於上傳成功後圖片自動消失的問題
緣由:在uploadify.js中第48行,有個屬性:removeCompleted 該屬性默認值爲 true;表示自動移除上傳成功的文件
解決方法:修改 removeCompleted 默認值爲 false
按鈕顯示中文
方法一:
Uploadify有一個參數是buttonText這個不管你怎麼改都不支持中文,由於插件在js裏用了一個轉碼方法把這個參數的值轉過碼了,解碼的地方在那個swf文件裏,看不到代碼,因此這條路不行。另外一個參數,網上不多提到,是buttonImg(按鈕圖片),這時你徹底能夠用一個圖片來替換掉插件自帶的那個黑色的flash瀏覽按鈕,只要你本身的圖片上是中文,這不就解決了中文按鈕問題麼?若是隻加這一個,你會發現你的按鈕圖片下面有一片白色區域,其實就是那個flash留下的,白色區域表示鼠標可用範圍,這個範圍能夠用width,height來調整。還有一個參數wmode它的默認值是opaque,把它改爲transparent就好了,也就是把那片白色區域透明化。再用剛纔說的方法,把按鍵點擊範圍設置成跟你圖片同樣大就徹底OK了。
方法二:
uploadify 控件的按鈕不支持多國語言,這裏介紹如何修改後使其支持多國語言。
1.jquery.uploadify.v2.1.4.js文件 70行
原代碼:if (settings.buttonText) data.buttonText = escape(settings.buttonText);
新代碼:if (settings.buttonText) data.buttonText = encodeURI(settings.buttonText);
2.jquery.uploadify.v2.1.4.min.js文件 863列
原代碼:if(f.buttonText){g.buttonText=escape(f.buttonText)}
新代碼:if(f.buttonText){g.buttonText=encodeURI(f.buttonText)}
3.uploadify.fla文件 Scene 1 腳本文件 117行
原代碼:browseBtn.empty.buttonText.text = unescape(param.buttonText);
新代碼:browseBtn.empty.buttonText.text = decodeURI(param.buttonText);
4.uploadify.fla文件 Scene 1>empty>buttonText 屬性>字符>系列
原值:Helvetica
新值:_sans
5.uploadify.fla文件 刪除(Delete) Scene 1>Helvetica