原创 motu_1991 随笔 js 相关脚本 21 阅读昨天 15:35:50
上传头像时, 当图像过大时, base64 图片后来接受到的值都是 null, 查了一下, 也有好多遇到相同问题的, 原来是应用服务器的问题 tomcat 原来是在默认的时候有限制 post 请求字符的长度那就是 1024*2 即 2M 不能超过 2M, 超过就会出现问题
解决办法如下:
通过修改 tomcat 下面的 conf 目录下的 server.xml
<Connector URIEncoding="UTF-8" connectionTimeout="20000" port="8000" protocol="HTTP/1.1" redirectPort="8443" maxHttpHeaderSize="10485760"/>
并在此代码里面加上属性 maxPostSize="0" 0 表示不限制 post 请求长度
也可以在上传图片时及时对图片的大小进行限制提醒:
- <form action="后端接口" enctype="multipart/form-data" method="post" id="attachment_uploads">
- <div class="attachs fl">
- <div class="upload_btns"><input type="file" name="files" id="file_fujian" onchange="filefujianChange(this);" /> <input type="hidden" name="rev" class="hide_rev" /></div>
- </div>
- </form>
- function filefujianChange(target) {
- var fileSize = 0; // 字节
- if (isIE && !target.files) {
- var filePath = target.value;
- var fileSystem = new ActiveXObject("Scripting.FileSystemObject");
- var file = fileSystem.GetFile (filePath);
- fileSize = file.Size;
- }
- else {
- fileSize = target.files[0].size;
- }
- var size = fileSize / 1024; //kB
- var sizeM = size/1024; //M
- if(sizeM>2){
- alert("附件不能大于 2M");
- target.value="";
- return
- }
- var name=target.value;
- var fileName = name.substring(name.lastIndexOf(".")+1).toLowerCase();
- if(fileName !="jpg" && fileName !="jpeg" && fileName !="pdf" && fileName !="png" && fileName !="dwg" && fileName !="gif" ){
- alert("请选择图片格式文件上传 (jpg,png,gif,dwg,pdf,gif 等)!");
- target.value="";
- return
- }
- }
来源: http://www.qdfuns.com/article/16039/682771d95e3a2423c7d408498486ad86.html