作者 主題: javascript、jquery如何取得上傳檔案大小?  (閱讀 8330 次)

0 會員 與 1 訪客 正在閱讀本文。

ebyaya

  • 可愛的小學生
  • *
  • 文章數: 18
    • 檢視個人資料
HTML Code:
<form action="" method="post" enctype="multipart/form-data" name="form1" id="form1">
  <input name="file1" type="file" id="file1" />
  <input type="submit" name="button" id="button" value="送出" />
</form>

第一種----->不合適
<script>
function CheckFileSize() {
var activeX = new ActiveXObject("Scripting.FileSystemObject");
var doc = document.form1.FileUpload1.value;
.
.
.
</script>

第二種----->不合適
<script>
function checkFile(sizeLimit){
var me = document.all;
var img = new Image();
document.MM_returnValue = false;
.
.
.
</scirpt>


在IE8的環境下,請問我該如何用javascript或jquery取得上傳檔案的大小呢?

小弟上網拜google大神拜了二天了,一堆都是用new ActiveXObject("Scripting.FileSystemObject");物件的方法,但這並符合我要的需求
因為這在IE8沒修改安全性時會出現"Automation伺服程式無法產生物件"的錯誤,我們無法要求每一位使用者都去修改他的安全性,
還有一種方法只適合用在圖片上傳就是用new Image()物件,可以由他的fileSize取得圖片上傳大小,但僅限圖片其他類型檔案就不行了,
在Google搜尋裡也是有很多人說做不到,不過小弟在jquery的外掛uploadify裡有看到他是有辦法取得檔案大小及名稱的(http://www.uploadify.com/demo/),
而且他在IE8、Firefox、chrome都是可以取得檔案大小的,這代表是有方法可以取得檔案大小的只是不知道用什麼方式而以,小弟試著去解他的code
,但不材無法得知他是用何方法達成的,不知道各位版大是否知道方法呢?

Nansen

  • 活潑的大學生
  • ***
  • 文章數: 210
    • 檢視個人資料
回覆: javascript、jquery如何取得上傳檔案大小?
« 回覆 #1 於: 2010-08-18 09:31 »
應該是用Flash試試看關掉flash後還能不能用

ebyaya

  • 可愛的小學生
  • *
  • 文章數: 18
    • 檢視個人資料
回覆: javascript、jquery如何取得上傳檔案大小?
« 回覆 #2 於: 2010-08-18 11:26 »
Nansen 大大真的是一語驚醒夢中人,我看了他的swf檔之後發現原來uploadify是用ActionScript在處理的,難怪他能跨瀏覽器都沒問題,
但我不是很想用Flash來處理,有沒有人有更好的方法?

Nansen

  • 活潑的大學生
  • ***
  • 文章數: 210
    • 檢視個人資料
回覆: javascript、jquery如何取得上傳檔案大小?
« 回覆 #3 於: 2010-08-18 11:48 »
沒關係還有ActiveX或Java Applet可以選 ;D
純JS是無法透過Browser存取本機的FileSystem的
單就plugin的市占率來看Flash最高應該也是唯一的選擇了吧

fillano

  • 鑽研的研究生
  • *****
  • 文章數: 526
    • 檢視個人資料
回覆: javascript、jquery如何取得上傳檔案大小?
« 回覆 #4 於: 2010-08-18 12:00 »
等眾家瀏覽器都支援這個:
http://dev.w3.org/2006/webapi/FileAPI/

才有可能完全用js來做。我印象中firefox有支援,其他瀏覽器就不太確定了。
Sapere aude! Habe Mut, dich deines eigenen Verstandes zu bedienen! ist also der Wahlspruch der Aufklärung.

TyroneYeh

  • 俺是博士!
  • *****
  • 文章數: 2396
  • 性別: 男
    • 檢視個人資料
回覆: javascript、jquery如何取得上傳檔案大小?
« 回覆 #5 於: 2010-08-18 12:14 »
取到檔案大小的下一步是?
--
TyroneYeh

ebyaya

  • 可愛的小學生
  • *
  • 文章數: 18
    • 檢視個人資料
回覆: javascript、jquery如何取得上傳檔案大小?
« 回覆 #6 於: 2010-08-18 15:03 »
取到檔案大小的下一步是?

在Firefox 3.6及Chrome 5以上可以使用物件的files.item(0).size一行就取得檔案大小,但卻獨缺IE不行。

TyroneYeh 大~目前很多FileUpload套件都是要裝一整套的,小弟覺的套起來有點重,即然ff及chrome都可以在幾行js
之間就完成上傳前判斷的話,這樣看起來輕很多,先不論美工如何,但目前就獨缺IE歸位,但IE的使用者又是大宗,看來
不得不放棄而使用整個套件來完成的方法了。