当前位置:首页 » 文件管理 » js限制上传文件的大小

js限制上传文件的大小

发布时间: 2023-12-18 07:49:04

Ⅰ 如何在上传图片时在客户端用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>

Ⅱ nodejs可以上传大文件吗

可以。不过要修改。

处理方式为在nodeJs的app.js文件中写一个use中间件将其大小限制给修改了。

修改代码:(app.js中)

[javascript]view plain

  • app.use(express.bodyParser({limit:"5000kb"}));

  • app.use(express.json({limit:'5000kb'}));


  • 这部分的代码顺序:(这个貌似没多大作用,不过还是留一个)

Ⅲ 如何使用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;
}

Ⅳ SWFUpload 文件上传插件常用的配置讲解

上传文件swfUpload 插件:

基本的文件上传涉及到的四个文件  (还有一个处理数据的php文件  这里没有涉及到)

html页面:

upload_window.html

js文件:

swfupload.js

handlers.js

fileprogress.js

第一:从html页晌败面出发:

重要的是将页面加载时间中的var setting={}这个大对象中的参数设置好  以下都是这个对象里面的常用配置 非常重要

首先需要将swfupload.swf加载

在 var  setting={} 这个大对象里面加flash_url:值

如: flash_url: "<tpl>$siteurl_static</tpl>/assets/uc/js/swfupload.swf",

然后需要将上传的路径加入 如: upload_url: "http://load.zom.com/u.do?uploadkey=" + uploadkey + "&ck=" + ck + "&cc=" + cc,(java的上传路径)

相关的设置常用的有:

file_size_limit  (设置上传的大小)    file_types(设置文件上传的类型)file_types_description(设置文件上传描述)

file_upload_limit (设置文件上传的数量限制)file_queue_limit (设置文件队列数量限制)

prevent_swf_caching : false  (在相关的swf文件增加随机参数避免Flash被缓存

debug:false

按钮的相关配置:

button_width: "200",

button_height: "50",

button_text_left_padding: 16,

button_text_top_padding: 7,

button_cursor:  button_cursor 指定鼠标悬停在Flash按钮上时的光标样式,可用值为SWFUpload.CURSOR里定义的常量。如:button_cursor: SWFUpload.CURSOR.HAND,

button_action(设置只能上传一个文档的限制:--》button_action: SWFUpload.BUTTON_ACTION.SELECT_FILE)

之后就是设置一些事件处理函数  这些都是在  handlers.js 里面相应的函数

file_dialog_start_handler: fileDialogStart,(设置文件对话开始函数)

file_queued_handler: fileQueued,(设置文件队列函数)

file_dialog_complete_handler: fileDialogComplete,(设置文件对话完成处理函数)

file_queue_error_handler: fileQueueError,(设置队列错误处理函数)

upload_start_handler: uploadStart,(设置开始上传函数)

upload_progress_handler: uploadProgress,(设置上传进度处理函数)

upload_error_handler: uploadError,(设置上传错误处理函数)

upload_complete_handler: uploadComplete,(设置上传此谨稿完成处理函数)

upload_success_handler: uploadSuccess(设置上传成功处理函数)

以上的配置都是在页面自动加载函数的setting大对象里面需要配置的基本参数

除了以上这些还有下面相应的非常关键的配置

别忘记:在setting大对象结束之后 在自动加载函数结束之前还有swfu = new SWFUpload(settings);  实例化一个对象

var setting还有森孝比较重要的配置  如下:

1.关于上传进度的配置是关键:

在var setting={}这个大对象里面设置一个元素:

custom_settings: {

                    progressTarget: "fsUploadProgress"

 },

progressTarget的值(即fsUploadProgress)是文件上传进度的显示 将html里面设置相应的位置放id="fsUploadProgress"

如:<div class="progressbar progressbar-0" id="fsUploadProgress">

            <span class="prog-num">0</span>

        </div>

span标签里的0就是从0开始进行上传  0就是初始的显示进度

2:关于上传的按钮设置 

在 var setting={} 这个大对象里面设置  button_placeholder_id : "spanButtonPlaceHolder"

需要将html相应的上传按钮加上相应的id="spanButtonPlaceHolder"

如:<div id="upload_doc" class="up-btn"><i >上传文档</i><span id="spanButtonPlaceHolder"></span></div>

成功上传需要将相应的数据进行处理:

在html页面中需要写ajax进行数据的处理~

如:

//成功后调用

function agree_upload(){

            var doc_id=$('.doc_title').attr('id');

            if(doc_id>0){

                uploadFinish(doc_id);

                parent.DOC88Window.close();

            }else{

                alert('您还未选择重新上传的文档');

            }

        }

        function uploadFinish(new_p_id) {

            var old_p_id = "<tpl>$p_id</tpl>";

            $.ajax({

                url: "/ucr/doc.php?act=save_upload",

                type: "post",

                data: {

                    old_p_id: old_p_id,

                    new_p_id: new_p_id

                },

                dataType: "json",

                success: function (msg) {

                    if (msg.result == 1) {

                        alert("数据正确");

                    } else {

                        alert("数据错误");

                    }

                }

            });

        }

第二:因为html页面中setting配置中有相应的函数处理配置  涉及到handler.js函数,所以接下来到handler.js文件的处理配置

根据html页面的配置 处理函数的顺序进行相应的配置

首先是fileQueue函数  文件排队函数:

需要设置一个变量 关于flash动画的函数

var stats = swfu.getStats();

根据需要将文件上传队列数量进行限制

if (stats.files_queued > 1) {

            alert("您的附件不能超过1个");

                    return false;

    }

接下来是fileQueueError函数  文件排队错误函数:

根据需要将相应的设置放在这个函数里面

可以放在try catch函数里面    设置的限制如下:

      switch (errorCode) {

            case SWFUpload.QUEUE_ERROR.FILE_EXCEEDS_SIZE_LIMIT:

                alert('单个文件大小不要超过50MB');

                break;

            case SWFUpload.QUEUE_ERROR.ZERO_BYTE_FILE:

                alert('不能上传空文件');

                this.debug("Error Code: Zero byte file, File name: " + file.name + ", File size: " + file.size + ", Message: " + message);

                break;

            case SWFUpload.QUEUE_ERROR.INVALID_FILETYPE:

                alert('文件类型错误');

                break;

            default:

                if (file !== null) {

                }

                this.debug("Error Code: " + errorCode + ", File name: " + file.name + ", File size: " + file.size + ", Message: " + message);

                break;

        }

接下来是uploadStart函数  文件上传开始函数:

设置相应的功能按钮的变换  比如上传开始(走到这个函数时 可以将相应的上传按钮改成上传中 并且禁止点击 就是禁用功能 加上一个取消上传按钮 )

可以将上传的文件的名称和文件格式显示出来 

如:

$("#upload_doc i").html("上传中");

    $('#cancel_upload').html('取消');

$("#upload_doc").attr('disabled','disabled');

var name = file.name;

                $('.doc_title').html(name);

        var format = file.type;

        format = format.toLocaleUpperCase();

        format = format.replace('.', '');

        $('.doc_format').html(format); 

接下来是uploadProgress函数  文件上传进度函数:如:

var percent = Math.ceil((bytesLoaded / bytesTotal) * 100);//上传的进度

        var progress = new FileProgress(file, this.customSettings.progressTarget);

        progress.setProgress(percent);

        progress.setStatus("正在上传");

接下来是uploadSuccess函数  文件上传成功函数

然后是uploadError函数  上传失败函数:

其他相关的函数可以根据需要进行设置

第三:fileprogress.js文件  关于文件上传进度  关键的是:

FileProgress函数的设置:

如:

function FileProgress(file, targetID) {

        this.fileProgressID = file.id;

        this.fileProgressWrapper = document.getElementById(this.fileProgressID);

        if (!this.fileProgressWrapper) {

                  this.fileProgressWrapper = document.createElement("li");

                  this.fileProgressWrapper.id = this.fileProgressID;

                  document.getElementById(targetID).appendChild(this.fileProgressWrapper);

        }

      this.setTimer(null);

}

FileProgress.prototype.setProgress = function (percentage) {}  里面进度样式的处理

如:

if (percentage <= 5) {

                $(".progressbar").addClass('progressbar-5');

    } else if (percentage <= 10) {

                $(".progressbar").addClass('progressbar-10');

    }......

第四:swfupload.js文件    几乎不用修改 可以将不用的函数删减

有很详细的讲解 链接:https://www.cnblogs.com/myboke/p/5579236.html

http://www.runoob.com/w3cnote/swfupload-guide.html

Ⅳ 浏览器会限制js上传文件大小吗

浏览器是不会限制js上传文件的大小的,但是js代码可以控制
因为上传操作是代码处理的浏览器不会自动帮你上传文件

Ⅵ 如何限制上传文件的大小和类型

有两种方式,
1、用fileupload控件在后台判断
FileUpload1.FileContent.Length判断大小,
System.IO.Path.GetExtension(FileUpload1.FileName)获取文件后缀
2、用jquery上传控件,可以直接判断类型和大小
另外js也可以在前台判断文件类型,但不能获取文件大小,需要引用插件

Ⅶ 怎样限制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">
转载,仅供参考。
如果我的回答没能帮助您,请继续追问。

热点内容
我的世界如何做服务器 发布:2025-01-21 12:16:23 浏览:527
怎样建立算法 发布:2025-01-21 12:12:14 浏览:838
凸包的graham算法 发布:2025-01-21 12:00:00 浏览:146
jsonobject转java对象 发布:2025-01-21 12:00:00 浏览:306
macpython3默认 发布:2025-01-21 11:58:26 浏览:261
芒果服务器是什么意思 发布:2025-01-21 11:57:54 浏览:40
微信聊天服务器错误什么意思 发布:2025-01-21 11:56:13 浏览:460
linuxtomcat不能访问 发布:2025-01-21 11:47:11 浏览:394
刷新器需要什么配置 发布:2025-01-21 11:09:28 浏览:972
jedis源码 发布:2025-01-21 11:08:24 浏览:890