发源地·开源项目分享社区

 找回密码
 立即注册
查看: 21|回复: 0
收起左侧

[开发综合] Discuz x3.4手机版图片上传新建相册无效的解决方法

[复制链接]

活雷锋

208

主题

1229

帖子

2667万

积分

管理员

最佳新人活跃会员热心会员推广达人宣传达人灌水之王突出贡献优秀版主荣誉管理论坛元老

UID
1
性别
银票
8889374
铜板
8891179
钢镚
8894181
好友
1
记录
1
日志
0
相册
54
帖子
1229
主题
208
精华
114
分享
0
注册时间
2019-5-13
最后登录
2020-5-29
在线时间
267 小时
卖家信用
买家信用
听众
1
收听
1
居住地
江苏省 苏州市 太仓市 太仓经济开发区
职业
山贼
自我介绍
他们都是叛徒,但我从没恨过他们...
兴趣爱好
IT/互联网/硬件/软件
发表于 2020-5-21 04:29:11 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
作者:青花
转载请注明:https://wdc.store/
使用了一套新的手机模板,遇到了图片上传页面一个奇葩问题,能传图片,但是选择相册无效,只能传到默认相册,新建相册提示成功,但是并没有新建,上传的图片依然是传到了默认相册。为了处理这个问题,我使用DZx3.4自带的模板改写了一个上传页面。
1.创建spacecp_upload.htm文件,并且将以下代码全部粘贴进去,因为这是登录状态才能调用的标准手机版,里面没有上传文件,将这个文件保存到/template/default/mobile/home目录下;
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <!-- --{csstemplate}---->
  5. <script type="text/javascript" src="{$_G[setting][jspath]}common.js?{VERHASH}"></script>
  6. <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport">
  7. <!--head部分-->
  8. <h2 class="h2_bq">
  9. 您正在准备创建新相册
  10. </h2>
  11. <!--head结束-->
  12. </head>

  13. <div>
  14.    
  15.         <div>
  16.                 <div>
  17.                         <div>
  18.                         <ul>
  19.                                 <li style="width:19%"><a id="li_a" href="forum.php">首页</a></li>
  20.                                 <li style="width:19%"><a id="li_a" href="forum.php?forumlist=1">社区</a></li>
  21.                                 <li style="width:19%"><a id="li_a" href="group.php">圈子</a></li>               
  22.                                 <li style="width:19%"><a id="li_a" href="home.php">我的</a></li>
  23.                                 <li style="width:19%"><a id="li_a" onClick="javascript :history.back(-1);">返回</a></li>                               
  24.                         </ul>
  25.                 <!--{if empty($_GET['op'])}-->               
  26.                 <form method="post"   autocomplete="off" id="albumform" action="home.php?mod=spacecp&ac=upload" onsubmit="return validate(this);">
  27. <HR style="FILTER: alpha(opacity=100,finishopacity=0,style=3);margin-left:-0.5px;" width="100%" color=#987cb9 SIZE=1>
  28.         <div class="kuang">   
  29.                         <h2>1. 选择新相册的封面图
  30.                         <p><span  class="span">        相册封面的尺寸比例不限制,支持多图批量上传,请保持在2048KB以内,超出尺寸的图片将会被过滤掉。</span></p></h2>
  31.                         <div style="border-radius:5px;">

  32.                                 <table cellspacing="0" cellpadding="0" id="tab">
  33.                                         <tbody id="attachbody"></tbody>
  34.                                 </table>
  35.                                 <div id="imgUploadProgress"></div>
  36.                                 <div><span id="imgSpanButtonPlaceholder"></span></div>
  37.                         </div>       
  38.                                 <!--{if empty($_G['setting']['pluginhooks']['spacecp_upload_extend'])}-->
  39.                                         <!--{subtemplate common/upload}-->
  40.                                         <script type="text/javascript">
  41.                                                 var upload = new SWFUpload({
  42.                                                         // Backend Settings
  43.                                                         upload_url: "{$_G[siteurl]}misc.php?mod=swfupload&action=swfupload&operation=album",
  44.                                                         post_params: {"uid" : "$_G[uid]", "hash":"$swfconfig[hash]"},

  45.                                                         // File Upload Settings
  46.                                                         file_size_limit : "2MB",        // 100MB
  47.                                                         file_types : "$swfconfig[imageexts][ext]",
  48.                                                         file_types_description : "$swfconfig[imageexts][depict]",
  49.                                                         file_upload_limit : 0,
  50.                                                         file_queue_limit : 0,

  51.                                                         // Event Handler Settings (all my handlers are in the Handler.js file)
  52.                                                         swfupload_preload_handler : preLoad,
  53.                                                         swfupload_load_failed_handler : loadFailed,
  54.                                                         file_dialog_start_handler : fileDialogStart,
  55.                                                         file_queued_handler : fileQueued,
  56.                                                         file_queue_error_handler : fileQueueError,
  57.                                                         file_dialog_complete_handler : fileDialogComplete,
  58.                                                         upload_start_handler : uploadStart,
  59.                                                         upload_progress_handler : uploadProgress,
  60.                                                         upload_error_handler : uploadError,
  61.                                                         upload_success_handler : uploadSuccess,
  62.                                                         upload_complete_handler : uploadComplete,

  63.                                                         // Button Settings
  64.                                                         button_image_url : "{IMGDIR}/uploadbutton.png",
  65.                                                         button_placeholder_id : "imgSpanButtonPlaceholder",
  66.                                                         button_width: 100,
  67.                                                         button_height:25,
  68.                                                         button_cursor:SWFUpload.CURSOR.HAND,
  69.                                                         button_window_mode: "transparent",

  70.                                                         custom_settings : {
  71.                                                                 progressTarget : "imgUploadProgress",
  72.                                                                 uploadSource: 'home',
  73.                                                                 uploadType: 'album',
  74.                                                                 imgBoxObj: $('attachbody')
  75.                                                         },

  76.                                                         // Debug Settings
  77.                                                         debug: false
  78.                                                 });

  79.                                         </script>
  80.                                 <!--{else}-->
  81.                                         <!--{hook/spacecp_upload_extend}-->
  82.                                 <!--{/if}-->
  83. <br>
  84.                         </div>

  85.                                 <script type="text/javascript">
  86.                                         var check = false;
  87.                                         no_insert = 1;
  88.                                         function a_addOption() {
  89.                                                 var obj = $('uploadalbum');
  90.                                                 obj.value = 'addoption';
  91.                                                 addOption(obj);
  92.                                         }

  93.                                         function album_op(id) {
  94.                                                 $('selectalbum').style.display = 'none';
  95.                                                 $('creatalbum').style.display = 'none';
  96.                                                 $(id).style.display = '';
  97.                                                 check = false;
  98.                                                 if(id == 'creatalbum') {
  99.                                                         check = true;
  100.                                                         $('albumname').select();
  101.                                                 }
  102.                                         }
  103.                                 </script>
  104. <HR style="FILTER: alpha(opacity=100,finishopacity=0,style=3);margin-left:-0.5px;" width="100%" color=#987cb9 SIZE=1>
  105.     <div  class="kuang">
  106.                                 <h2>2. 创建相册并保存封面</h2>
  107.                                 <div style="border-radius:5px;">
  108.                                         <!--{if $albums}-->
  109.                                         <p >

  110.                                                 <label for="albumop_creatalbum"><input type="radio" name="albumop" id="albumop_creatalbum"  value="creatalbum" checked="checked" onclick="album_op(this.value);" />创建新的相册</label>
  111.                                         </p>
  112.                                         <!--div id="selectalbum" class="hm">
  113.                                         {lang select_album}
  114.                                                 <select name="albumid" id="uploadalbumid">
  115.                                                 <!--{loop $albums $value}-->
  116.                                                         <!--{if $value['albumid'] == $_GET['albumid']}-->
  117.                                                                 <!--option value="$value[albumid]" selected="selected">$value[albumname]</option>
  118.                                                         <!--{else}-->
  119.                                                                 <!--option value="$value[albumid]">$value[albumname]</option>
  120.                                                         <!--{/if}-->
  121.                                                 <!--{/loop}-->
  122.                                                 <!--/select-->
  123.                                         <!--/div-->
  124.                                         <div id="creatalbum">
  125.                                         <!--{else}-->
  126.                                         <!--p class="hm pbw xs2 xw1">创建新的相册</p-->
  127.                                         <input type="hidden" name="albumop" value="creatalbum" />
  128.                                         <div id="creatalbum">
  129.                                         <!--{/if}-->
  130.                                                 <table>
  131.                                                         <tr>
  132.                                                                 <th id="th">相册名称</th>
  133.                                                                 <td class="td_box"><input type="text" name="albumname" id="albumname" class="td" size="20" value="" /></td>
  134.                                                         </tr>
  135.                                                         <tr>
  136.                                                         <th> </th>  
  137.                                                         <td></td>
  138.                                                         </tr>
  139.                                                         <tr>
  140.                                                                 <th id="th">相册描述</th>
  141.                                                                 <td  class="td_box"><textarea name="depict" class="td2" cols="40" rows="2"></textarea></td>
  142.                                                         </tr>

  143.                                                         <!--{if $_G['setting']['albumcategorystat'] && $categoryselect}-->
  144.                                                         <tr>
  145.                                                                 <th id="th">社区分类</th>
  146.                                                                 <td class="td_box2">  $categoryselect
  147.                                                                 </td>
  148.                                                         </tr>
  149.                                                         <!--{/if}-->
  150.                                                         <tr>
  151.                                                                 <th id="th">隐私设置</th>
  152.                                                                 <td class="td_box2">
  153.                                                                           <select name="friend" id="uploadfriend" onchange="passwordShow(this.value);">
  154.                                                                                 <option value="0">公开相册</option>
  155.                                                                                 <option value="1">好友可见</option>
  156.                                                                                 <option value="2">指定可见</option>
  157.                                                                                 <option value="3">私密相册</option>
  158.                                                                                 <option value="4">密码访问</option>
  159.                                                                         </select>
  160.                                                                 </td>
  161.                                                         </tr>
  162.                                                         <tbody id="span_password" style="display:none;">
  163.                                                                 <tr>
  164.                                                                         <th id="th">{lang password}</th>
  165.                                                                         <td><input type="text" name="password" id="uploadpassword"  value="" size="10" /></td>
  166.                                                                 </tr>
  167.                                                         </tbody>
  168.                                                         <tbody id="tb_selectgroup" style="display:none;">
  169.                                                                 <tr>
  170.                                                                         <th id="th">{lang specified_friends}</th>
  171.                                                                         <td>
  172.                                                                                 <select name="selectgroup" class="ps" onchange="getgroup(this.value);">
  173.                                                                                         <option value="">{lang from_friends_group}</option>
  174.                                                                                         <!--{loop $groups $key $value}-->
  175.                                                                                         <option value="$key">$value</option>
  176.                                                                                         <!--{/loop}-->
  177.                                                                                 </select>
  178.                                                                                 <p>{lang choices_following_friends_list}</p>
  179.                                                                         </td>
  180.                                                                 </tr>
  181.                                                                 <tr>
  182.                                                                         <th id="th"> </th>
  183.                                                                         <td>
  184.                                                                                 <textarea name="target_names" id="target_names" class="pt" rows="3"></textarea>
  185.                                                                                 <p>{lang friend_name_space}</p>
  186.                                                                         </td>
  187.                                                                 </tr>
  188.                                                         </tbody>
  189.                                                 </table>
  190.                                         </div>
  191.                                 </div>
  192.                                 <div>
  193.                                    <center>
  194.                                 <h2> <span class="span">温馨提示:社区分类会将作品在搜索结果中展现。</span></h2>
  195.                                         <input type="hidden" name="albumsubmit" id="albumsubmit" value="true" />
  196.                                         <button type="submit" name="albumsubmit_btn" id="albumsubmit_btn btn"  value="true"{if $_G['setting']['albumcategoryrequired']} onclick="return validate(this);"{/if}><strong>提交上传</strong><text></text></button>
  197.                                         <input type="hidden" name="formhash" value="{FORMHASH}" />
  198.                                         </center>
  199.                                 </div>
  200.                         </div>       
  201.                         </form>

  202.                         <script type="text/javascript">
  203.                                 <!--{if empty($albums)}-->
  204.                                         if(typeof $('albumname') == 'object') {
  205.                                                 $('albumname').select();
  206.                                         }
  207.                                 <!--{/if}-->
  208.                                 function validate(obj) {
  209.                                         if(!$('attachbody').getElementsByTagName('tr').length) {
  210.                                                 showDialog('{lang select_upload_pic}', 'notice', '{lang reminder}', null, 0);
  211.                                                 return false;
  212.                                         }
  213.                                         <!--{if $_G['setting']['albumcategorystat'] && $_G['setting']['albumcategoryrequired']}-->
  214.                                         var catObj = $("catid");
  215.                                         if(catObj && check) {
  216.                                                 if (catObj.value < 1) {
  217.                                                         showDialog('{lang select_system_cat}', 'notice', '{lang reminder}', null, 0);
  218.                                                         catObj.focus();
  219.                                                         return false;
  220.                                                 }
  221.                                         }
  222.                                         <!--{/if}-->
  223.                                         return true;
  224.                                 }
  225.                         </script>

  226.                 <!--{elseif $_GET['op'] == 'cam'}-->
  227.                 </div>
  228.                 <div>
  229.                         <script type="text/javascript">
  230.                                 document.write(AC_FL_RunContent(
  231.                                         'width', '100%', 'height', '415',
  232.                                         'src', '{IMGDIR}/cam.swf?config=$config&albumid=$_GET[albumid]',
  233.                                         'quality', 'high', 'wmode', 'transparent'
  234.                                 ));
  235.                         </script>
  236.                 <!--{/if}-->

  237.                 </div>
  238.         </div>
  239.         </div>
  240. </div>

  241. <style type="text/css">
  242. #li_a{
  243.     background:green;
  244.     color:#fff;
  245.     font-size:18px;
  246.     line-height:30px;
  247.     border-radius:5px;
  248.     text-align:center;
  249.     padding:5px 10px 3px 10px ;
  250.     border:2px solid #FFBF00;  

  251. }
  252. #up_tb{
  253.     width:100%;
  254. }
  255. #th{
  256.     width:120px;
  257.     color:black;
  258.     height:30px;
  259.     font-size:18px;
  260.     color:#8A2BE2;
  261. }
  262. .btn{
  263.     background-color:green;
  264.     color:#fff;
  265.     font-size:16px;
  266.     margin-top:0px;
  267.     padding-top:5px;
  268.     margin-bottom:5px;
  269.     border-radius:10px;   
  270.     width:100px;
  271. }
  272. .h2_bq{
  273.     height:40px;
  274.     background-color:#EE3B3B;
  275.     color:#fff;
  276.     line-height:40px;
  277.     font-size:18px;
  278.     text-align:center;
  279.     margin-left:-9px;
  280.     width:103%;
  281. }
  282. .td{
  283.     border-radius:5px;
  284.     width:98.5%;
  285.     height:25px;
  286. }  
  287. .td2{
  288.     border-radius:5px;
  289.     width:97.5%;
  290.     height:25px;   
  291. }  
  292. .td_box{
  293.     height:30px;
  294.     background-color:green;
  295.     border-radius:5px;
  296. }
  297. .td_box2{
  298.     height:26px;
  299.     background-color:#EE3B3B;
  300.     border-radius:5px;
  301.     line-height:12px;
  302.     border:2px inset #FFBF00;   
  303. }
  304. </style>
  305. <style type="text/css">
  306. html{
  307.     overflow:hidden;
  308.     overflow-x:none;   
  309. }
  310. body {
  311.     background-color:#fff;
  312.     width:97.4%;
  313.     overflow:hidden;   
  314.    
  315. }
  316. p {
  317.     color:blue
  318. }
  319. li {
  320.     list-style:none;
  321.     float:left;
  322.     margin-bottom:20px;   
  323.     margin-top:5px;     
  324.     text-align:center;
  325. }
  326. ul{
  327.     width:100%;
  328.     margin-left:-25px;
  329. }
  330. div{
  331.     width:99.3%;
  332. }
  333. .kuang{
  334.     border-radius:5px;
  335.     border:2px solid #FFBF00;   
  336.     width:95.3%;
  337.     font-size:13px;
  338.     color:transparent;
  339.     padding-left:8px;
  340.     padding-right:8px;
  341.     z-index:999;
  342. }
  343. .span{
  344.     padding-bottom:10px;
  345.     color:red;
  346.     font-size:14px;
  347. }
  348. h2{
  349.     color:green;
  350. }
  351. .xuanze{
  352.     width:100%;
  353.     height:30px;
  354.     border-radius:5px;
  355.     border:2px solid #FFBF00;      
  356. }
  357. button{
  358.     margin-bottom:30px;
  359.     height:40px;
  360.     width:100px;
  361.     border:2px inset #00E5EE;  
  362.     border-radius:5px;
  363.     background: #00BFFF;
  364. }
  365. tab{
  366.     color:rgb(0,0,0,0.0);
  367.     padding-right:20px;
  368. }
  369. </style>
复制代码


2.在手机触屏版的我的相册页面,header右上角的上传图标调用地址:
  1. href="home.php?mod=spacecp&ac=upload&mobile=1"
复制代码


3.如果没有该按钮,可以创建一个,一般是以下文件:
/template/手机触屏版的模板目录/touch/home/spacecp_upload.htm

通过以上自建的图片上传文件即可解决触屏版无法创建相册和上传的问题。

以上代码中:
92行
  1. file_size_limit : "2MB",    //按属性来讲,这只是尺寸大小说明,但是在这里实际可以控制图片大小
复制代码
95-96行
  1. file_upload_limit : 0,      //上传图片的大小,但是在这里是无效的
  2. file_queue_limit : 0,       //上传图片的数量限制,在这里设置是无效的,原因不明
复制代码
112行
  1. button_image_url : "{IMGDIR}/uploadbutton.png",    //按钮背景图的地址
复制代码
114行-115行
  1. button_width: 300,    //表示上传按钮背景图的宽度
  2. button_height:30,      //表示上传按钮背景图的高度
复制代码

调用按钮示例:
  1. <div  class="wic_form_li questionli b_b" style="color:red;font-size:13px;text-align:center;margin-left:-10px;margin-right:-10px;">温馨提示:创建相册功能接口兼容性已经升级</div>
  2.                 <div  class="wic_form_li questionli b_b" style="color:green;font-size:18px;text-align:center;margin-left:-10px;margin-right:-10px;">马上访问新版相册创建和多图上传功能</div>               

  3. <div  class="wic_form_li questionli b_b" style="color:green;font-size:18px;text-align:center;margin-left:-10px;margin-right:-10px;"><a style="color:blue" href="home.php?mod=spacecp&ac=upload&mobile=1">1.创建相册并上传-【点击进入】</a></div>     
  4. <div  class="wic_form_li questionli b_b" style="color:green;font-size:18px;text-align:center;margin-left:-10px;margin-right:-10px;"><a style="color:blue" href="home.php?mod=spacecp&ac=album&op=editpic&albumid=$albumid">2.管理已上传相册-【点击进入】</a></div>
复制代码




哎...今天够累的,签到来了4...
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|kedoutd.cn|wdc.store|fll.store|zuz.store|newbe.store|pvp.store ( 苏ICP备14054272号 )

GMT+8, 2020-5-29 23:05

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表