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

遇到的问题:

最近使用了THINKCMF给客户开发了一个企业网站,客户在使用了一段时间后打电话说后台文章编辑页面有问题

经过沟通过知道,在后台文章编辑和添加页面相册图集每次只能上传一张图片

在跟客户确认了所有的细节后就开始解决,首页在本地进行了测试发现客户说的是对的,于是就查看源代码

在\tpl_admin\simpleboot\Asset\swfupload.html发现上传的图片数量是固定的,找到问题后就开始在网络上搜索有没有现有的解决方案

在网络上没有找到现有的解决方案,于是自己动手直接在源码里解决

解决方案:

实现原理:主要是在页面调用时加了一个参数,然后在上传页面根据此参数动态设置要上传的数量

1.修改\tpl_admin\simpleboot\Asset\swfupload.html源文件代码(仅修改过的JS文件列出)

<script>
/**
* @Author: HTL
* @Email: [email protected]
* @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

来自为知笔记(Wiz)

时间: 2024-08-15 01:48:48

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

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

一.基本设置 参考:https://docs.djangoproject.com/zh-hans/3.0/topics/http/file-uploads/ 1)配置project1/settings.py 因为图片也属于静态文件,所以保存到static目录下. MEDIA_ROOT=os.path.join(BASE_DIR,"static/media") 2)在static目录下创建media目录,再创建应用名称的目录,此例为app1 F:\Test\django-demo\pro

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

最近在做一个网站项目遇到了一个很奇怪的问题,现记录下来希望可以帮助到其他的朋友 问题描述: 最近公司刚刚在香港购买了一个Windows Server 2008 服务器用于将一个客户的N个php网站进行统一管理 该服务器上有三个网站,一个是THINKPHP开发的小型电子竞技网站,一个使用WORDPRESS开发的企业网站,一个使用ECSHOP开发的商城商城 由于前二天家中有事所以请假回去了一个礼拜(走之前三个网站都已经部署到该服务器但测试是在其他服务器上进行的并没有发现什么问题) 在请假回来后客户反

将自己在CSDN上的文章下载到本地并上传到掘金

CSDN 算是一个老牌技术网站了,很多喜欢写文章的人,一开始都是在 CSDN上发布,但是可能由于某些原因,有的人想把自己在 CSDN上的文章放到其他的网站上(嗯,比如掘金),但是由于在 CSDN上发布的文章数量很多,一篇篇复制粘贴下来理论上是可行的,就是手酸了点. 不过,作为技术型体力劳动者人才,重复一种动作几十甚至上百遍未免有点丢失 biger,想起前段时间我花费了 大量时间 翻译的 Puppeteer,至今还没体现出其价值来,于是决定就用它了. 本文的可运行示例代码已经上传到 github了

vsftpd限制用户只能上传不能下载

有时候,项目中有这样的需求:vsftpd只能上传文件不能下载.下面我们就来分享一下个人的经验: 例子1:vsftpd本地用户实现可以上传不能下载(即不能读) 1.创建用于登陆vsftpd的用户.并赋予其密码: useradd test 2.创建vsftpd的共享目录,将其的属主和属组都修改为szl:权限为777 (这里是测试环境): mkdir /mnt/test chown test:test /mnt/test chmod 777 /mnt/test 3.安装vsftpd:此处用yum直接安

vsftp实现只能上传不能下载、删除权限配置

vsftpd可以对每个用户特别限制.只要给那个用户建立一个设置文件,然后在文件里设置 在vsftpd.conf里加user_config_dir=/etc/vsftpd/vsftpd_user_conf,这是文件夹.当然你可以自己选把用户文件放在哪在此文件夹里新建一个文件,跟用户名相同.VSFTPD会比对用户名和用户设置文件. 在文件里加local_root=PATH to directory就可以更改用户的home directorylocal_max_rate=XXXX就可以限制此用户的带宽

vsftpd匿名用户只能上传不能下载

目的 搭建一台FTP服务器,供学生上传作业使用. 要求 1.学生可以直接访问FTP服务器,无需登录: 2.只能上传文件,不能创建文件夹.重命名.删除等: 3.不能下载文件(防抄袭): 4.不能在线查看文件. 配置# 创建upload目录mkdir /var/ftp/upload# 改变属主chown ftp /var/ftp/upload # 用以下内容替换/etc/vsftpd/vsftpd.conf文件原来的内容 listen=YES write_enable=YES anon_upload

phpcms后台批量上传添加图片文章方法详解(一)

注:以下所有代码中,红色部分为增加部分. 一.在后台增加批量添加按钮 打开“phpcms\modules\content\templates\content_list.tpl.php”文件 搜索“$category['catname']));?> ”在这句话的后天的添加: a  echo="" href=":;" m="content&c=content&a=addall&menuid=&catid=&pc_h

asp在IIS里为什么只能上传小于200K的文件

这个是服务器有个文件限制了.在程序里是提高不过200K以上的. 以下是怎么提高上传的大小限制. 2003解决IIS限制上传.下载文件大小及metabase.xml修改 1.停止IIS Admin Service服务. 2.按照如下的路径找到文件:系统盘(C:)Windows System32 inetsrv MetaBase.xml, 在该文件中搜索AspMaxRequestEntityAllowed,设置为你想要的数字(默认204800即200K). 3.重新启动IIS Admin Servi

Django1.11搭建一个简易上传显示图片的后台

项目展示需要,之前没研究过Django,网上查资料快速做了一个后台,写下了防止自己忘了. p { margin-bottom: 0.1in; line-height: 120% } a:link { } 1. 安装Django: pip install Django 2. 测试Django: python >> import django >>django.VERSION 显示版本为(1, 11, 5, 'final', 0),刚接触,github也没找到能运行起来的. 3. 运行