當前位置:首頁 » 文件管理 » js上傳圖片限制大小

js上傳圖片限制大小

發布時間: 2022-12-29 11:36:22

❶ 瀏覽器會限制js上傳文件大小嗎

瀏覽器是不會限制js上傳文件的大小的,但是js代碼可以控制
因為上傳操作是代碼處理的瀏覽器不會自動幫你上傳文件

❷ js/jquery校驗上傳圖片後綴為gif|png|jpeg|jpg格式的圖片,尺寸為512*512 校驗,大小限制為300k的文件

<input type="file" name="myFile" id="form01" />

function validate_edit_logo(a){
var file = $('file').value;
if(!/.(gif|jpg|jpeg|png|gif|jpg|png)$/.test(file)){
alert("圖片類型必須是.gif,jpeg,jpg,png中的一種")
if(a==1){
return false;
}
}else{
var image = new image();
image.src = file;
var height = image.height;
var width = image.width;
var filesize = image.filesize;
$('beforeend').src=file;
$('div_regi_right').setstyle('display', 'block');
if(width>512 && height>512 && filesize>300k){
alert('請上傳512*512像素 或者大小小於300k的圖片');
if(a==1){
return false;
}
}
if(a==1){
return true;
}
}
}

❸ 如何在上傳圖片時在客戶端用js判斷圖片大小並彈出提示

參考:
<script language=javascript>

var ImgObj=new Image(); //建立一個圖像對象

var AllImgExt=".jpg|.jpeg|.gif|.bmp|.png|"//全部圖片格式類型
var FileObj,ImgFileSize,ImgWidth,ImgHeight,FileExt,ErrMsg,FileMsg,HasCheked,IsImg//全局變數 圖片相關屬性

//以下為限制變數
var AllowExt=".jpg|.gif" //允許上傳的文件類型 ŀ為無限制 每個擴展名後邊要加一個"|" 小寫字母表示
//var AllowExt=0
var AllowImgFileSize=70; //允許上傳圖片文件的大小 0為無限制 單位:KB
var AllowImgWidth=500; //允許上傳的圖片的寬度 ŀ為無限制 單位:px(像素)
var AllowImgHeight=500; //允許上傳的圖片的高度 ŀ為無限制 單位:px(像素)

HasChecked=false;

function CheckProperty(obj) //檢測圖像屬性
{
FileObj=obj;
if(ErrMsg!="") //檢測是否為正確的圖像文件 返回出錯信息並重置
{
ShowMsg(ErrMsg,false);
return false; //返回
}

if(ImgObj.readyState!="complete") //如果圖像是未載入完成進行循環檢測
{
setTimeout("CheckProperty(FileObj)",500);
return false;
}

ImgFileSize=Math.round(ImgObj.fileSize/1024*100)/100;//取得圖片文件的大小
ImgWidth=ImgObj.width //取得圖片的寬度
ImgHeight=ImgObj.height; //取得圖片的高度
FileMsg="\n圖片大小:"+ImgWidth+"*"+ImgHeight+"px";
FileMsg=FileMsg+"\n圖片文件大小:"+ImgFileSize+"Kb";
FileMsg=FileMsg+"\n圖片文件擴展名:"+FileExt;

if(AllowImgWidth!=0&&AllowImgWidth<ImgWidth)
ErrMsg=ErrMsg+"\n圖片寬度超過限制。請上傳寬度小於"+AllowImgWidth+"px的文件,當前圖片寬度為"+ImgWidth+"px";

if(AllowImgHeight!=0&&AllowImgHeight<ImgHeight)
ErrMsg=ErrMsg+"\n圖片高度超過限制。請上傳高度小於"+AllowImgHeight+"px的文件,當前圖片高度為"+ImgHeight+"px";

if(AllowImgFileSize!=0&&AllowImgFileSize<ImgFileSize)
ErrMsg=ErrMsg+"\n圖片文件大小超過限制。請上傳小於"+AllowImgFileSize+"KB的文件,當前文件大小為"+ImgFileSize+"KB";

if(ErrMsg!="")
ShowMsg(ErrMsg,false);
else
ShowMsg(FileMsg,true);
}

ImgObj.onerror=function(){ErrMsg='\n圖片格式不正確或者圖片已損壞!'}

function ShowMsg(msg,tf) //顯示提示信息 tf=true 顯示文件信息 tf=false 顯示錯誤信息 msg-信息內容
{
msg=msg.replace("\n","<li>");
msg=msg.replace(/\n/gi,"<li>");
if(!tf)
{
document.all.UploadButton.disabled=true;

FileObj.outerHTML=FileObj.outerHTML;
document.getElementById("preview").innerHTML=msg;
HasChecked=false;
}
else
{
document.all.UploadButton.disabled=false;
if(IsImg)

document.getElementById("preview").innerHTML="<img src='"+ImgObj.src+"' width='60' height='60'>"
else

// document.getElementById("preview").innerHTML="非圖片文件";
document.getElementById("preview").innerHTML=msg;
HasChecked=true;
}
}

function CheckExt(obj)
{
ErrMsg="";
FileMsg="";
FileObj=obj;
IsImg=false;
HasChecked=false;

document.getElementById("preview").innerHTML="預覽區";
if(obj.value=="")return false;

document.all.UploadButton.disabled=true;
FileExt=obj.value.substr(obj.value.lastIndexOf(".")).toLowerCase();
if(AllowExt!=0&&AllowExt.indexOf(FileExt+"|")==-1) //判斷文件類型是否允許上傳
{
ErrMsg="\n該文件類型不允許上傳。請上傳 "+AllowExt+" 類型的文件,當前文件類型為"+FileExt;
ShowMsg(ErrMsg,false);
return false;
}

if(AllImgExt.indexOf(FileExt+"|")!=-1) //如果圖片文件,則進行圖片信息處理
{
IsImg=true;
ImgObj.src=obj.value;
CheckProperty(obj);
return false;
}
else
{
FileMsg="\n文件擴展名:"+FileExt;
ShowMsg(FileMsg,true);
}

}

</script>
<form enctype="multipart/form-data" method="POST" onsubmit="return HasChecked;">
<fieldset style="width: 372; height: 60;padding:2px;">

<input type="file" id="file1" onchange="CheckExt(this)" style="width:180px;">
<input type="submit" id="UploadButton" value="開始上傳" disabled><br>
<div id="preview" style="border:1 solid #808080;background:#E0E0E0;width100%;height:20px;color:#606060;padding:5px;" >

</div>
</fieldset>

❹ 怎樣限制fileupload控制項上傳的文件大小 js

您好,我來為您解答:
這就是一個判斷而已,放在你要調用的JS方法裡面,執行的代碼在下面的控制項裡面執行的。

if(document.all.imgx.fileSize>1024*1024)

{

alert('圖片文件超過指定大小(1M),請重新上傳附件');

window.event.returnValue=false;

return false;

}

就是在選擇附件之後將這個文件傳給img 在到JS方法裡面判斷

<asp:FileUpload ID="FileUpload2" runat="server" Width="353px" onchange="document.all.imgx.src=this.value"/><img src="" id="imgx" style="display:none">
轉載,僅供參考。
如果我的回答沒能幫助您,請繼續追問。

❺ jquery怎樣限制上傳圖片的大小和像素寬高,解析度

<scripttype="text/javascript">
functionvalidate_img(a){
varfile=a.value;
if(!/.(gif|jpg|jpeg|png|GIF|JPG|png)$/.test(file)){
alert("圖片類型必須是.gif,jpeg,jpg,png中的一種");
returnfalse;
}else{
varimage=newImage();
image.src=file;
varheight=image.height;
varwidth=image.width;
varfilesize=image.filesize;
alert(height+"x.."+filesize);
if(width>80&&height>80&&filesize>102400){
alert('請上傳80*80像素或者大小小於100k的圖片');
returnfalse;
}
}
alert("圖片通過");
}
</script>
圖像:<inputtype="file"name="uploadImg"onchange="Javascript:validate_img(this);"size="12"/>

測試的時候放伺服器上測試,本地不行的哈~

❻ 如何使用javascript限制文件上傳大小

$("#ms_upload_file").change(function(){

//檢驗非空和文件大小
if($(this).val() !== '' && checkSize(this)) { //其他操作
}
});/**
* 函數:檢查上傳文件大小
* 輸入:input的js對象
* 輸出:
**/function checkSize(input) {
var Sys = {}; var flag; var filesize = 0; //判斷瀏覽器種類
if (navigator.userAgent.indexOf("MSIE") > 0) {
Sys.ie=true;
} if (navigator.userAgent.indexOf("Firefox")>0) {
Sys.firefox=true;
} //獲取文件大小
if (Sys.firefox) {
filesize = input.files[0].size;
} else if (Sys.ie){ var fileobject = new ActiveXObject ("Scripting.FileSystemObject");//獲取上傳文件的對象
var file = fileobject.GetFile (input.value);//獲取上傳的文件
filesize = file.Size;//文件大小
} //判斷是否符合要求
if (filesize / (1024 * 1024) < 5 ) {
flag = true;
} else {
alert("附件過大,建議不要超過5M!");
flag = false;
} return flag;
}

❼ javascript上傳圖片限制大小為100KB

<script language="javascript">
function check(form1)
{
var img=document.createElement("img");

if(form1.images.value=="")
{
alert("圖片上傳不能為空,請選擇上傳的圖片!")
form1.images.focus();
return false;
}
if (img.fileSize>102400)
{
alert("上傳的圖片不能大於100KB");
return false;
}
else
{
return true;
}
}
</script>

❽ js壓縮圖片 到固定像素以內,500k為例

本文旨在探究js壓縮圖片的兩種方式: 改變圖片長寬 改變圖片質量 ,和結合了以上兩者的 最終方案

首先,閱讀本文需要知道canvas的兩個方法

這兩個方法具體的說明可以在MDN上查看,關於圖片壓縮,也有很多現成的博客可以直接用。但是那些博客都有個問題,並沒有關心之後圖片的壓縮質量。
我試著用一個現成的例子去跑了一下,一個1.7M的圖片壓縮到了23k,堪稱像素級毀滅性破壞。

假如一張大圖可能包含著很多文字等關鍵信息,必須上傳之後使用方能清晰辨認。所以要壓縮之後質量盡可能接近500k的。500k像素以內,就是若一張圖寬度為1024,則高度不能超過500。因為圖片有其他的信息,也是要佔大小的。即不得大於 1024*500

所以,根據需求,上傳圖片不能超過500k的情況下盡可能保留圖片的清晰度。當然如果可以的情況下用上面提到的 canvas.toDataURL 設置壓縮程度為0.9,0.8試試看,圖片質量可以接受,大小會有大幅度的縮小。

如果不壓縮,靠調整圖片長寬去控制上傳大小呢?
原理很簡單,就是靠不斷地縮小限定的最大寬高,直到最終長寬的積小於規定的大小。
這種方法有可能最後得出的圖片的大小會略大於規定大小,原因上文也提到過了,如果想使用這種方法,可自行再調整一下。

上面的方法有個問題,就是改變了圖片的原始長寬。如果一個圖的長寬足夠大,壓縮圖片質量,糊一點但是內容看得清也是ok的嘛。所以,跟上面同理,我們可以不斷調整圖片的質量設定直到大小合適,那麼,如何在圖片上傳之前知道圖片的大小呢?
首先,需要知道的一點是,壓縮之後拿到的base64字元串會轉成blob對象,然後傳給服務端。
可以查閱文檔,blob對象有個屬性是size

這個size就是上傳之後實際的文件大小。
參照上面的思路,可以每次改變 canvas.toDataURL('image/' + fileType, level); level的值,去調整壓縮圖片質量,然後用blob對象的size去驗證是否滿足500k以內的需求。
關於 canvas.toDataURL 的level到底是怎麼計算的,MDN文檔里也沒說,寫了個循環一次減少0.1的level壓縮了幾個圖片

用加減乘除算了一下,沒找到規律,數學不好放棄了(這個東西好像也不是能觀察出來的,看結果跟初始大小沒啥關系)。
這里要注意的是,有可能遇到超大圖片,0.1的level可能不足以壓縮到500k,所以小於0.1的時候,改變level遞減的差值繼續壓縮下去

在開始接收到圖片的時候給一個loading增加用戶的耐心好了,loading萬歲~

其實單純的壓縮質量遇到稍大的圖片,會導致頁面高頻計算,然後頁面基本就用不了了- -。有嘗試過用iphone的一個屏幕截圖(10M左右),壓的時候稍過一會,整個手機都在發燙,只能殺進程。

所以,若對長度沒有特殊的限制,可以做一個縮放,去加快壓縮的進度,提高能壓縮的圖片大小上限。

頁面到了ios上還是不行- -,可以看到最後圖片level為0.001,最長邊為764。
問題還是循環次數還是過多,計算頻率太高。從圖中可看出,對於大圖來說,初始設定的level和圖片尺寸過於寬松,可以優化一下初始level和尺寸。

有的時候還會遇到一張圖片無論如何也壓不到500k,就是上一次和這次的壓縮後大小沒有變化,這種情況需要拋錯,不讓循環繼續。

大圖片的等待時間稍長,可以給用戶先預覽一個base64的圖片增加等待耐心,方法名為 getImgBase64 ,這里都一並給出了

解決的隱患:上面這個方案會出現我需要一個500k的照片,壓到了520k之後,再壓了一次。有時候這最後的一次會特別誇張,直接將圖片弄到了幾十k。
參考了: https://github.com/WangYuLue/image-conversion
這個庫裡面有個方法 compressAccurately ,這個方法可以比較精準地壓縮。偷偷翻了一下源碼

其實上一個方案的痛點就在於,如何在每一個壓縮循環里處理尺寸和壓縮比例。

總結

如有紕漏,歡迎指正

❾ asp js 頁面中上傳文件限制更改(30分)

最簡單的方法:
400KB的話就將你貼的代碼的第三行的1024改成256就行了。
不限制的話就將nAllowSize*1024改成1024,前面的nAllowSize*刪掉。

熱點內容
為什麼網站託管要在雲伺服器上 發布:2025-08-23 22:39:09 瀏覽:511
數碼相機沒有存儲卡 發布:2025-08-23 22:27:04 瀏覽:641
路由器管理員密碼有多少 發布:2025-08-23 22:16:16 瀏覽:632
php網站開發系統 發布:2025-08-23 22:06:10 瀏覽:829
DNS伺服器地址添加不上 發布:2025-08-23 21:39:42 瀏覽:914
數字圖像壓縮編碼 發布:2025-08-23 21:38:35 瀏覽:325
騰訊雲伺服器ip用備案嗎 發布:2025-08-23 21:34:35 瀏覽:925
安卓手機一般用的是什麼介面 發布:2025-08-23 21:32:39 瀏覽:742
編程主流語言 發布:2025-08-23 21:31:02 瀏覽:898
我的世界伺服器pvp房間號 發布:2025-08-23 21:31:01 瀏覽:648