2009-09-17 28 views
26

我想知道是否有一種方法可以使用jQuery來查找我鏈接到網頁的PDF文件大小。使用jQuery查找下載鏈接後的文件大小

我想讓它在懸停在下載鏈接上時彈出一個模式框,指出PDF的文件大小。我可以做第二點,我唯一想知道的是如何找出文件大小。我不知道jQuery是否可以做到這一點。如果不是那麼糟糕,我猜..

提前歡呼。

+0

可能重複[獲取通過AJAX請求的文件的大小(http://stackoverflow.com/questions/1484303/get-size-of-file-請求通過阿賈克斯) – user2284570 2014-09-15 18:46:47

回答

46

我覺得這樣做太過於客戶端,但我不知道你的應用程序的細節,所以假設你必須用jQuery來做...你可以做一個HEAD請求,看看在Content-Length標題處。之前我推薦過jqHead插件,但在嘗試使用它之後,我發現它已損壞。

下面是一個不依賴於任何額外的插件工作示例:http://host.masto.com/~chris/so/jqhead.html

它的肉是很簡單的:

var request; 
    request = $.ajax({ 
    type: "HEAD", 
    url: $("#url").val(), 
    success: function() { 
     alert("Size is " + request.getResponseHeader("Content-Length")); 
    } 
    }); 
+0

我基本上寫了一個答案,提出一個HEAD請求,但你也打敗了我。可以幫助顯示代碼來執行/不使用插件。 – eyelidlessness 2009-09-17 19:15:10

+0

太棒了,但開發者應該注意到域隱私在這裏:) – ValeriiVasin 2012-07-21 12:42:52

+0

要了解@InviS的說法,請嘗試使用http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min。 js',它位於另一個域 – vol7ron 2013-08-09 16:34:14

0

如果您事先知道文件大小,可以將其放入下載鏈接的標題屬性中。您也可以使用jQuery來顯示自定義彈出窗口。

否則,在沒有實際下載整個內容AFAIK的情況下,無法獲得URL的文件大小(內容長度)。

0

我能想到的唯一方法就是創建一個Web服務,它將返回PDF文件的大小。

12

這裏正在片段找到的JavaScript文件的大小,而不如果您要將文件上傳到服務器,請轉到服務器。

這個想法有助於在將大文件上傳到服務器之前限制文件大小。

<input type="file" id="loadfile" /> 
<input type="button" value="find size" onclick="findSize()" /> 
<script type="text/javascript"> 
    function findSize() { 
     var fileInput = $("#loadfile")[0]; 
     alert(fileInput.files[0].size); // Size returned in bytes. 
    }  
</script> 
+0

@凱爾Sevenoaks:抱歉關於這個凱爾。 ,我回滾到你的:) – Skurmedel 2011-02-04 10:19:12

+0

嘿,不用擔心:) – Kyle 2011-02-04 10:20:22

+2

這在IE8中並不適用於我 - Firefox雖然不錯。 – wdanda 2011-06-28 19:47:18

0

在上面的答案中,Chrome 21和Safari 6沒有fileSize成員,但確實有大小。用途:

fileInput.files [0] .size的