Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在使用jQuery提交之前,如何检查POST数据大小?_Jquery_File Upload_Postdata - Fatal编程技术网

在使用jQuery提交之前,如何检查POST数据大小?

在使用jQuery提交之前,如何检查POST数据大小?,jquery,file-upload,postdata,Jquery,File Upload,Postdata,我有一个web应用程序,允许用户添加多个图像,然后在按下保存按钮时一次上载这些图像以及其他数据。我试图在发送POST数据之前计算其总大小,以便将请求分解为多个请求,以避免出现PHP的POST\u max\u size或max\u file\u上载错误 目前,我正在使用此代码使用HTML5文件API(sizeproperty)仅检查图像的总体大小: //计算所有提交文件的大小 var ttlSize=0; $('form').find('input[type=file]')。each(functi

我有一个web应用程序,允许用户添加多个图像,然后在按下保存按钮时一次上载这些图像以及其他数据。我试图在发送POST数据之前计算其总大小,以便将请求分解为多个请求,以避免出现PHP的
POST\u max\u size
max\u file\u上载错误

目前,我正在使用此代码使用HTML5文件API(
size
property)仅检查图像的总体大小:

//计算所有提交文件的大小
var ttlSize=0;
$('form').find('input[type=file]')。each(function(){
ttlSize+=此.files[0]。大小;
});
如果(ttlSize>4*1048576){/>4MB
//这将超过post_max_size PHP设置,现在处理。。。
}else if($('form').find('input[type=file]')。长度>=10){
//这将超过最大文件上传PHP设置,现在处理。。。
}

我想更准确地说,包括其余的POST数据。这可能吗?

您可以通过计算序列化表单的长度来估计它,不包括文件上载字段。因此,它将沿着以下路线:


$(“form”).not(“[type='file']”)。serialize().length

出于安全目的,对文件上载元素的访问仅限于文件名。在客户端机器上访问文件的唯一方法是通过新的FormData对象使用html5。请看这里:。如果没有这些对象,就无法获得文件的大小。否则:为什么不实现异步上传?

我希望这个链接会有所帮助you@AnkurSaxena-这个问题有那么难理解吗?关于非php限制,例如suhosin或apache的限制呢LimitRequestBody@MarcB我之所以关注这些PHP错误,是因为如果用户一次上传太多图像,我会遇到这些错误。太棒了,这似乎正是我需要的。目前,我的客户端和服务器端的数字由于一些错误的数学运算而关闭,但会找出发生了什么并给出最终结果。看起来此方法给出的结果比实际的
内容长度
短了一个字节数,该字节数随提交的字段数以及使用的浏览器数的增加而增加。但这正是我想要的,谢谢。我想这并不准确。通过添加文件大小和表单序列化,我认为您没有考虑发送到服务器的文件元数据(作为文件名)或多部分/表单数据格式。顺便说一句,这是一个很好的方法。我想知道一个确切的防弹解决方案。我目前使用FileReader API将文件加载到DOM中,然后在
iframe
中构造并提交表单。所以我可以得到文件大小,它是异步的。(: