遇到的问题:
最近使用了THINKCMF给客户开发了一个企业网站,客户在使用了一段时间后打电话说后台文章编辑页面有问题
经过沟通过知道,在后台文章编辑和添加页面相册图集每次只能上传一张图片
 
在跟客户确认了所有的细节后就开始解决,首页在本地进行了测试发现客户说的是对的,于是就查看源代码
在\tpl_admin\simpleboot\Asset\swfupload.html发现上传的图片数量是固定的,找到问题后就开始在网络上搜索有没有现有的解决方案
在网络上没有找到现有的解决方案,于是自己动手直接在源码里解决
解决方案:
实现原理:主要是在页面调用时加了一个参数,然后在上传页面根据此参数动态设置要上传的数量
 
1.修改\tpl_admin\simpleboot\Asset\swfupload.html源文件代码(仅修改过的JS文件列出)
<script>
/**
* @Author: HTL
* @Email: Huangyuan413026@163.com
* @DateTime: 2015-07-13 14:23:01
* @Description: 通过参数自定义上传的数量
*/
var _file_upload_limit="<php>echo $_GET['max_count'];</php>";
//默认为1个,为0则表示不限制
if(_file_upload_limit.length<=0)
_file_upload_limit=1;
//用于图库加载
function set_iframe(id,src){
if($("#"+id).attr("src")==""){
$("#"+id).attr("src",src);
}
}
//网络地址
function addonlinefile(obj){
var strs = $(obj).val()?'|'+ $(obj).val():'';
$('#att-status').html(strs);
}
//是否添加水印设置
function change_params(){
if($('#watermark_enable').attr('checked')){
swfu.addPostParam('watermark_enable','1');
}else{
swfu.removePostParam('watermark_enable');
}
}
//图片选择处理回调
function album_cancel(obj,id,source){
//图片地址
var src = $(obj).attr("data-path");
//上传图片文件名
var filename = $(obj).attr("title");
//选择状态中的数据对象
var selected = $("#fsUploadProgress .selected");
if($("#aid-"+id).hasClass('selected')){
$("#aid-"+id).removeClass("selected");
selected = $("#fsUploadProgress .selected");
var imgstr = $("#att-status").html();
var length = selected.children("img").length;
var strs = filenames ='';
for(var i=0;i<length;i++){
strs +='|'+selected.children("img").eq(i).attr('path');
filenames +='|'+selected.children("img").eq(i).attr('title');
}
$('#att-status').html(strs);
$('#att-status').html(filenames);
}else{
var num = $('#att-status').html().split('|').length;
var file_upload_limit = _file_upload_limit;//自定义上传的数量
//_file_upload_limit=0为不限制数量
if(file_upload_limit>0&& num > file_upload_limit){alert('不能选择超过'+file_upload_limit+'个附件');returnfalse;}
$("#aid-"+id).addClass("selected");
$('#att-status').append('|'+src);
$('#att-name').append('|'+filename);
}
}
</script>
<scripttype="text/javascript">
var swfu ='';
$(document).ready(function(){
Wind.use("swfupload",GV.DIMAUB+"statics/js/swfupload/handlers.js",function(){
swfu =newSWFUpload({
flash_url:"__ROOT__/statics/js/swfupload/swfupload.swf",
upload_url:"{:u('asset/swfupload')}",
file_post_name :"Filedata",
post_params:{
"{:C('VAR_SESSION_ID')}":"{:session_id()}",
"thumb_width":"0",
"thumb_height":"0",
"watermark_enable":"1",
"filetype_post":"jpg|jpeg|gif|png|bmp|zip"
},
file_size_limit:"20240KB",
file_types:"*.jpg;*.jpeg;*.gif;*.png;*.bmp;*.zip",
file_types_description:"All Files",
file_upload_limit:_file_upload_limit,//自定义上传的数量
custom_settings :{progressTarget :"fsUploadProgress",cancelButtonId :"btnCancel"},
button_image_url:"",
button_width:75,
button_height:28,
button_placeholder_id:"buttonPlaceHolder",
button_text_style:"",
button_text_top_padding:3,
button_text_left_padding:12,
button_window_mode:SWFUpload.WINDOW_MODE.TRANSPARENT,
button_cursor:SWFUpload.CURSOR.HAND,
file_dialog_start_handler : fileDialogStart,
file_queued_handler : fileQueued,
file_queue_error_handler:fileQueueError,
file_dialog_complete_handler:fileDialogComplete,
upload_progress_handler:uploadProgress,
upload_error_handler:uploadError,
upload_success_handler:uploadSuccess,
upload_complete_handler:uploadComplete
});
});
})</script>
<script>
$(function(){
$("#att-status").html("");
$("#att-status-del").html("");
$("#att-name").html("");
});
//设置上传的最大数量,为0表示不限制数量
if(_file_upload_limit<=0)
$("#max_count").text("N");
else
$("#max_count").text(_file_upload_limit);
</script>
2.替换\tpl_admin\simpleboot\Portal\AdminPost\里的edit.html和add.html以下内容
   
<ahref="javascript:;"style="margin:5px0;"onclick="javascript:flashupload('albums_images','图片上传','photos',change_images,'10,gif|jpg|jpeg|png|bmp,0','','','')"class="btn">选择图片 </a>
//更改为,max_count=0表示不限制,不设置默认为1
<ahref="javascript:;"style="margin:5px0;"onclick="javascript:flashupload('albums_images','图片上传','photos',change_images,'10,gif|jpg|jpeg|png|bmp,0','','&max_count=0','')"class="btn">选择图片 </a>
max_count=0
 
max_count=5 或指定数字
max_count=未设置 默认为1
 
    

解决THINKCMF后台文章的相册图集只能上传一个图片的问题的更多相关文章

  1. uploadify3.2.1 多文件上传总是只能上传一个文件

    再网上找了老半天原因,有人说是上传时调用方法参数应该加上*号(:$('#mulfile_upload').uploadify('upload','*');) 总是不行, 我怀疑下面的原因: 我就以为是 ...

  2. Django(十九)文件上传:图片上传(后台上传、自定义上传)、

    一.基本设置 参考:https://docs.djangoproject.com/zh-hans/3.0/topics/http/file-uploads/ 1)配置project1/settings ...

  3. vue用阿里云oss上传图片使用分片上传只能上传100kb以内的解决办法

    首先,vue和阿里云oss上传图片结合参考了 这位朋友的 https://www.jianshu.com/p/645f63745abd 文章,成功的解决了我用阿里云oss上传图片前的一头雾水. 该大神 ...

  4. ECSHOP后台编辑器不能上传中文名图片的解决办法

    在后台上传商品图片的时候,如果你选择一个中文名称的图片,那么上传后会产生乱码,导致图片显示不出来. 下面说一种解决办法: 使用“年月日时分秒 + 6个随机字符”做为文件名,如 201010161356 ...

  5. 解决PHP在Windows IIS 上传的图片无法访问的问题

    最近在做一个网站项目遇到了一个很奇怪的问题,现记录下来希望可以帮助到其他的朋友   问题描述: 最近公司刚刚在香港购买了一个Windows Server 2008 服务器用于将一个客户的N个php网站 ...

  6. #添加图片,最多只能上传9张.md

    #添加图片,最多只能上传9张.md 前端页面: ```javascript <form id="imgForm" enctype="multipart/form-d ...

  7. 解决uploadify多图片上传部分图片丢失,且不提示任何错误的问题

    这两天用到uploadify的flash版本进行批量图片上传并生成缩略图的功能,之前用uploadify用的好好的,这次突然出现了一个奇怪的问题. 问题描述如下:当我选择单个图片上传的时候,图片上传都 ...

  8. Ecshop商品描述上传中文名图片无法显示解决方法

    在后台上传商品图片的时候,如果你选择一个中文名称的图片,那么上传后会产生乱码,导致图片显示不出来. 下面说一种解决办法:使用"年月日时分秒 + 6个随机字符"做为文件名,如 201 ...

  9. easyui+webuploader+ckeditor实现插件式多图片上传-添加图片权限(图片上传人是谁,只能看到自己的图片)

    需求: 实现过程及思路 1.先页面布局 <html xmlns="http://www.w3.org/1999/xhtml"> <head runat=" ...

随机推荐

  1. input文字颜色、光标颜色

    <input type="text" placeholder="输入框"> input{ color: red;/*输入文字.光标颜色*/ -web ...

  2. 如何用万用表判断一个12V蓄电池是否没电

    常用的方法如下: 1.找一根细铜丝,接触电瓶的正负极柱,冒火花说明电瓶有电,不冒火花说明没有电. 2.用万用表测量电瓶的电压,12.7V说明满电,11.50V一下说明没有电. 3.找一个12V的灯泡或 ...

  3. Yarn使用简介

    Yarn是由Facebook.Google.Exponent 和 Tilde 联合推出了一个新的 JS 包管理工具 , 它主要是为了弥补 npm 的一些缺陷而出现的.和npm相比,它具有如下特点: 速 ...

  4. Cocos2d-x之CCMenu

    from://http://blog.linguofeng.com/archive/2012/11/14/cocos2d-x-CCMenu.html Cocos2d-x之CCMenu Cocos2dx ...

  5. SharePoint 取消分享时的默认发邮件

    前言 最近遇到一个需求,就是sharepoint默认分享的时候,会默认勾选发送邮件的功能.而用户,经常会用到分享的功能,但是不需要发送邮件,需要默认不勾选这个操作. 这样,就需要修改sharepoin ...

  6. Android中的输入法

    提起输入法我就想到了Edittext,输入法可以自动根据inputType来改变键盘的布局,在支付钱包中还特别隐藏的系统自带的输入法,直接让用户用软件自己的输入法,提高了安全性.所以,我们应该对输入法 ...

  7. 应用内截屏的代码,在Activity中测试可用

    截屏功能让我十分头疼,想做个无需root的又找不到资料.这里暂且分享一个无需root的,在应用内截屏的代码,本文转自:http://blog.csdn.net/csh159/article/detai ...

  8. 出现Running Android Lint的错误

    进入设置,让软件不要检查即可.

  9. 命令行界面 (CLI)、终端 (Terminal)、Shell、TTY的区别

    虽然这个话题已是老生常谈,搜索一下应该也能找到大把的相关文章.不过难得提到了这方面,就趁此机会把我的理解写下来,一来看看我是不是真正理解了,二来看看我能不能把它们之间的区别讲得更加简明易懂. 0. 太 ...

  10. 使用jstl标签时提示The absolute uri: http://java.sun.com/jsp/jstl/core cannot

    http://www.360doc.com/content/11/1219/15/1007797_173395882.shtml 检查应用目录下WEB-INF的lib里是否有jstl.jar和stan ...