attachment.html 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592
  1. {template 'common/header'}
  2. <div class="we7-page-title">附件设置</div>
  3. <ul class="we7-page-tab">
  4. <li {if $do == 'global'}class="active"{/if}><a href="{php echo url('system/attachment/global')}">全局设置</a></li>
  5. <li {if $do == 'remote'}class="active"{/if}><a href="{php echo url('system/attachment/remote')}">远程附件</a></li>
  6. </ul>
  7. {if $do == 'global'}
  8. <div class="clearfix">
  9. <form action="" method="post" class="we7-form form" id="form">
  10. {if !empty($upload_max_filesize) && !empty($post_max_size)}
  11. <div class="form-group">
  12. <label class="col-sm-2 control-label">PHP 环境说明</label>
  13. <div class="col-sm-10">
  14. <div class="form-control-static">1. 当前 PHP 环境允许最大单个上传文件大小为: {$upload_max_filesize}</div>
  15. <div class="form-control-static">2. 当前 PHP 环境允许最大 POST 表单大小为: {$post_max_size}</div>
  16. </div>
  17. </div>
  18. {/if}
  19. <h5 class="page-header">附件缩略设置</h5>
  20. <div class="form-group">
  21. <label class="col-sm-2 control-label">缩略设置</label>
  22. <div class="col-sm-10">
  23. <input type="radio" name="upload[image][thumb]" id="radio_image_thumb_0" value="0" {if empty($upload['image']['thumb'])} checked{/if} />
  24. <label for="radio_image_thumb_0" class="radio-inline">
  25. 不启用缩略
  26. </label>
  27. <input type="radio" name="upload[image][thumb]" id="radio_image_thumb_1" value="1" {if !empty($upload['image']['thumb'])} checked{/if} />
  28. <label for="radio_image_thumb_1" class="radio-inline">
  29. 启用缩略
  30. </label>
  31. <div class="help-block"></div>
  32. </div>
  33. </div>
  34. <div class="form-group upload-image-thumb-width-height" {if empty($upload['image']['thumb'])} style="display:none;"{/if}>
  35. <label class="col-sm-2 control-label"></label>
  36. <div class="col-sm-3">
  37. <div class="input-group">
  38. <span class="input-group-addon">宽</span>
  39. <input name="upload[image][width]" value="{$upload['image']['width']}" type="text" class="form-control">
  40. <span class="input-group-addon">px</span>
  41. </div>
  42. <span class="help-block">缩略后图片 <b>最大宽度</b></span>
  43. </div>
  44. </div>
  45. <h5 class="page-header">图片附件设置</h5>
  46. <div class="form-group">
  47. <label class="col-sm-2 control-label">支持文件后缀</label>
  48. <div class="col-sm-5">
  49. <textarea name="upload[image][extentions]" class="form-control" rows="4">{$upload['image']['extentions']}</textarea>
  50. <div class="help-block">填写图片后缀名称, 如: jpg, 换行输入, 一行一个后缀.</div>
  51. </div>
  52. </div>
  53. <div class="form-group">
  54. <label class="col-sm-2 control-label">支持文件大小</label>
  55. <div class="col-sm-5">
  56. <div class="input-group">
  57. <input name="upload[image][limit]" value="{$upload['image']['limit']}" type="text" class="form-control">
  58. <span class="input-group-addon">KB</span>
  59. </div>
  60. </div>
  61. </div>
  62. <div class="form-group">
  63. <label class="col-sm-2 control-label">图片压缩</label>
  64. <div class="col-sm-5">
  65. <div class="input-group">
  66. <input name="upload[image][zip_percentage]" value="{$upload['image']['zip_percentage']}" type="number" step="1" min="10"
  67. max="100" class="form-control" placeholder="请输入原图的压缩比(100%表示不压缩)">
  68. <span class="input-group-addon">%</span>
  69. </div>
  70. <div class="help-block">100不压缩 值越大越清晰</div>
  71. </div>
  72. </div>
  73. <h5 class="page-header">音频视频附件设置</h5>
  74. <div class="form-group">
  75. <label class="col-sm-2 control-label">支持文件后缀</label>
  76. <div class="col-sm-5">
  77. <textarea name="upload[audio][extentions]" class="form-control" rows="4">{$upload['audio']['extentions']}</textarea>
  78. <div class="help-block">填写音频视频后缀名称, 如: mp3, 换行输入, 一行一个后缀.</div>
  79. </div>
  80. </div>
  81. <div class="form-group">
  82. <label class="col-sm-2 control-label">支持文件大小</label>
  83. <div class="col-sm-5">
  84. <div class="input-group">
  85. <input name="upload[audio][limit]" value="{$upload['audio']['limit']}" type="text" class="form-control">
  86. <span class="input-group-addon">KB</span>
  87. </div>
  88. </div>
  89. </div>
  90. <div class="form-group">
  91. <div class="col-sm-offset-2 col-md-offset-2 col-lg-offset-2 col-sm-10 col-md-10 col-lg-10">
  92. <input name="submit" type="submit" value="提交" class="btn btn-primary span3" />
  93. <input type="hidden" name="token" value="{$_W['token']}" />
  94. </div>
  95. </div>
  96. <script type="text/javascript">
  97. $(function(){
  98. $('input[name="upload[image][thumb]"]').click(function(){
  99. if($(this).val() == 1){
  100. $('.upload-image-thumb-width-height').css('display', '');
  101. } else {
  102. $('.upload-image-thumb-width-height').css('display', 'none');
  103. }
  104. });
  105. });
  106. </script>
  107. </form>
  108. </div>
  109. {elseif $do == 'remote'}
  110. <form action="" method="post" class="we7-form form" id="form">
  111. <div class="form-group">
  112. <div class="col-sm-12">
  113. <input type="radio" name="type" id="type-0" value="0" onclick="$('.remote-qiniu').hide();$('.remote-alioss').hide();$('.remote-ftp').hide();$('.remote-close').show();$('.remote-cos').hide();" {if empty($remote['type']) || $remote['type'] == '0'} checked="checked" {/if}>
  114. <label class="radio-inline" for="type-0">
  115. 关闭
  116. </label>
  117. <input type="radio" name="type" id="type-1" value="1" onclick="$('.remote-qiniu').hide();$('.remote-ftp').show();$('.remote-alioss').hide();$('.remote-close').hide();$('.remote-cos').hide();" {if !empty($remote['type']) && $remote['type'] == '1'} checked="checked" {/if}>
  118. <label class="radio-inline" for="type-1">
  119. FTP服务器
  120. </label>
  121. <input type="radio" name="type" id="type-2" value="2" onclick="$('.remote-qiniu').hide();$('.remote-alioss').show();$('.remote-ftp').hide();$('.remote-close').hide();$('.remote-cos').hide();" {if !empty($remote['type']) && $remote['type'] == '2'} checked="checked" {/if}>
  122. <label class="radio-inline" for="type-2">
  123. 阿里云OSS <span class="label label-success">推荐,快速稳定</span>
  124. </label>
  125. <input type="radio" name="type" id="type-3" value="3" onclick="$('.remote-qiniu').show();$('.remote-alioss').hide();$('.remote-ftp').hide();$('.remote-close').hide();$('.remote-cos').hide();" {if !empty($remote['type']) && $remote['type'] == '3'} checked="checked" {/if}>
  126. <label class="radio-inline" for="type-3">
  127. 七牛云存储 <span class="label label-success">推荐,快速稳定</span>
  128. </label>
  129. <input type="radio" name="type" id="type-4" value="4" onclick="$('.remote-qiniu').hide();$('.remote-alioss').hide();$('.remote-ftp').hide();$('.remote-close').hide();$('.remote-cos').show();" {if !empty($remote['type']) && $remote['type'] == '4'} checked="checked" {/if}>
  130. <label class="radio-inline" for="type-4">
  131. 腾讯云存储 <span class="label label-success">推荐,快速稳定</span>
  132. </label>
  133. <span class="help-block"></span>
  134. </div>
  135. </div>
  136. <div class="remote-ftp" {if empty($remote['type']) || $remote['type'] != '1'} style="display:none;" {/if}>
  137. <div class="form-group">
  138. <label class="col-sm-2 control-label">启用SSL连接</label>
  139. <div class="col-sm-9">
  140. <input type="radio" id="ftp[ssl]-1" name="ftp[ssl]" value="1" {if !empty($remote['ftp']['ssl'])} checked="checked" {/if}>
  141. <label class="radio-inline" for="ftp[ssl]-1">
  142. </label>
  143. <input type="radio" id="ftp[ssl]-0" name="ftp[ssl]" value="0" {if empty($remote['ftp']['ssl'])} checked="checked" {/if}>
  144. <label class="radio-inline" for="ftp[ssl]-0">
  145. </label>
  146. <span class="help-block">注意:选择是后,FTP 服务器必须开启了 SSL,一般情况选择否即可</span>
  147. </div>
  148. </div>
  149. <div class="form-group">
  150. <label class="col-sm-2 control-label">FTP服务器地址</label>
  151. <div class="col-sm-9">
  152. <input type="text" name="ftp[host]" class="form-control" value="{$remote['ftp']['host']}" />
  153. <span class="help-block">可以是 FTP 服务器的 IP 地址或域名</span>
  154. </div>
  155. </div>
  156. <div class="form-group">
  157. <label class="col-sm-2 control-label">FTP服务器端口</label>
  158. <div class="col-sm-9">
  159. <input type="text" name="ftp[port]" class="form-control" value="{if empty($remote['ftp']['port'])}21{else}{$remote['ftp']['port']}{/if}" />
  160. <span class="help-block">默认为21</span>
  161. </div>
  162. </div>
  163. <div class="form-group">
  164. <label class="col-sm-2 control-label">FTP帐号</label>
  165. <div class="col-sm-9">
  166. <input type="text" name="ftp[username]" class="form-control" value="{$remote['ftp']['username']}" />
  167. <span class="help-block">该帐号必须具有以下权限:读取文件、写入文件、删除文件、创建目录、子目录继承</span>
  168. </div>
  169. </div>
  170. <div class="form-group">
  171. <label class="col-sm-2 control-label">FTP密码</label>
  172. <div class="col-sm-9">
  173. <input type="text" name="ftp[password]" class="form-control encrypt" value="{$remote['ftp']['password']}" />
  174. <span class="help-block">基于安全考虑将只显示 FTP 密码的第一位和最后一位,中间显示八个 * 号</span>
  175. </div>
  176. </div>
  177. <div class="form-group">
  178. <label class="col-sm-2 control-label">被动模式(pasv)连接:</label>
  179. <div class="col-sm-9">
  180. <label class="radio-inline">
  181. <input type="radio" name="ftp[pasv]" value="1" {if !empty($remote['ftp']['pasv'])} checked="checked" {/if}> 是
  182. </label>
  183. <label class="radio-inline">
  184. <input type="radio" name="ftp[pasv]" value="0" {if empty($remote['ftp']['pasv'])} checked="checked" {/if}> 否
  185. </label>
  186. <span class="help-block">一般情况下非被动模式即可,如果存在上传失败问题,可尝试打开此设置</span>
  187. </div>
  188. </div>
  189. <div class="form-group">
  190. <label class="col-sm-2 control-label">远程附件目录</label>
  191. <div class="col-sm-9">
  192. <input type="text" name="ftp[dir]" class="form-control" value="{$remote['ftp']['dir']}" />
  193. <span class="help-block">远程附件目录的绝对路径或相对于 FTP 主目录的相对路径,结尾不要加斜杠 "/" , 例如:/attachment</span>
  194. </div>
  195. </div>
  196. <div class="form-group">
  197. <label class="col-sm-2 control-label">远程访问URL</label>
  198. <div class="col-sm-9">
  199. <input type="text" name="ftp[url]" class="form-control" value="{$remote['ftp']['url']}" />
  200. <span class="help-block">支持 HTTP 和 FTP 协议,结尾不要加斜杠 "/" ; 例如:http://mydomin.com/attachment 如果使用 FTP 协议,FTP 服务器必须支持 PASV 模式,为了安全起见,
  201. 使用 FTP 连接的帐号不要设置可写权限和列表权限</span>
  202. </div>
  203. </div>
  204. <div class="form-group">
  205. <label class="col-sm-2 control-label">FTP传输超时时间</label>
  206. <div class="col-sm-9">
  207. <input type="text" name="ftp[overtime]" class="form-control" value="{if empty($remote['ftp']['overtime'])}0{else}{$remote['ftp']['overtime']}{/if}" />
  208. <span class="help-block">单位:秒,0为服务器默认</span>
  209. </div>
  210. </div>
  211. <div class="form-group">
  212. <div class="">
  213. <button name="submit" class="btn btn-primary" value="submit">保存配置</button>
  214. <button name="button" type="button" class="btn btn-info js-checkremoteftp" value="check">测试配置(无需保存)</button>
  215. {if !empty($_W['setting']['remote_complete_info']['type']) && !empty($local_attachment)}
  216. <a name="button" class="btn btn-info" href="{php echo url('system/attachment/upload_remote')}">一键上传</a>
  217. {/if}
  218. <input type="hidden" name="token" value="{$_W['token']}" />
  219. </div>
  220. </div>
  221. </div>
  222. <div class="remote-alioss" {if empty($remote['type']) || $remote['type'] != '2'} style="display:none;" {/if}>
  223. <div class="alert alert-info">
  224. 启用阿里oss后,请把/attachment目录(不包括此目录)下的子文件及子目录上传至阿里云oss, 相关工具:<br>
  225. <ul class="link-list">
  226. <li><a target="_blank" href="http://market.aliyun.com/products/52738003/cmgj000304.html?spm=5176.383663.9.21.faitxp" class="product-grey-font" data-spm-anchor-id="5176.383663.9.21">cloudfs4oss(ECS挂载文件盘工具)</a></li>
  227. <li><a target="_blank" href="http://market.aliyun.com/products/53690006/cmgj000281.html?spm=5176.383663.9.22.faitxp" class="product-grey-font" data-spm-anchor-id="5176.383663.9.22">官方推荐OSS客户端工具(Windows版)</a></li>
  228. <li><a target="_blank" href="http://market.aliyun.com/products/53690006/cmgj000282.html?spm=5176.383663.9.23.faitxp" class="product-grey-font" data-spm-anchor-id="5176.383663.9.23">官方推荐OSS客户端工具(Mac版)</a></li>
  229. <li><a target="_blank" href="http://market.aliyun.com/products/53690006/cmgj000208.html?spm=5176.383663.9.24.faitxp" class="product-grey-font" data-spm-anchor-id="5176.383663.9.24">Ftp4ossServer(OSS的FTP云工具)</a></li>
  230. <li><a target="_blank" href="http://bbs.aliyun.com/read/239565.html?spm=5176.383663.9.25.faitxp&amp;pos=2" class="product-grey-font" data-spm-anchor-id="5176.383663.9.25">OSS图片服务Demo工具</a></li>
  231. <li><a target="_blank" href="http://docs.aliyun.com/?spm=5176.383663.9.26.faitxp#/pub/oss/utilities/osscmd&amp;install" class="product-grey-font" data-spm-anchor-id="5176.383663.9.26">批量上传工具(Python)版</a></li>
  232. <li><a target="_blank" href="https://docs.aliyun.com/?spm=5176.383663.9.27.faitxp#/pub/oss/utilities/oss-import&amp;index" class="product-grey-font" data-spm-anchor-id="5176.383663.9.27">OSS数据迁移工具-OSS Import</a></li>
  233. <li><a target="_blank" href="http://market.aliyun.com/products/52738004/cmfw000394.html?spm=5176.383663.9.28.faitxp" class="product-grey-font" data-spm-anchor-id="5176.383663.9.28">海量数据迁移至OSS服务</a></li>
  234. <li><a target="_blank" href="http://bbs.aliyun.com/read/247023.html?spm=5176.383663.9.29.faitxp" class="product-grey-font" data-spm-anchor-id="5176.383663.9.29">更多官方推荐工具</a></li>
  235. </ul>
  236. </div>
  237. <div class="form-group">
  238. <label class="col-sm-2 control-label">Access Key ID</label>
  239. <div class="col-sm-9">
  240. <input type="text" name="alioss[key]" class="form-control" value="{$remote['alioss']['key']}" placeholder="" />
  241. <span class="help-block">
  242. Access Key ID是您访问阿里云API的密钥,具有该账户完全的权限,请您妥善保管。
  243. </span>
  244. </div>
  245. </div>
  246. <div class="form-group">
  247. <label class="col-sm-2 control-label">Access Key Secret</label>
  248. <div class="col-sm-9">
  249. <input type="text" name="alioss[secret]" class="form-control encrypt" value="{$remote['alioss']['secret']}" placeholder="" />
  250. <span class="help-block">
  251. Access Key Secret是您访问阿里云API的密钥,具有该账户完全的权限,请您妥善保管。(填写完Access Key ID 和 Access Key Secret 后请选择bucket)
  252. </span>
  253. </div>
  254. </div>
  255. <div class="form-group" id="bucket" {if empty($remote['alioss']['key'])}style="display: none;{/if}">
  256. <label class="col-sm-2 control-label">Bucket选择</label>
  257. <div class="col-sm-9">
  258. <select name="alioss[bucket]" class="form-control">
  259. </select>
  260. <span class="help-block">
  261. 完善Access Key ID和Access Key Secret资料后可以选择存在的Bucket(请保证bucket为可公共读取的),否则请手动输入。
  262. </span>
  263. </div>
  264. </div>
  265. <div class="form-group">
  266. <label class="col-sm-2 control-label">自定义URL</label>
  267. <div class="col-sm-9">
  268. <input type="text" name="custom[url]" class="form-control" {if !strexists($remote['alioss']['url'],'aliyuncs.com') && $_W['setting']['remote']['type'] == 2}value="{$remote['alioss']['url']}"{/if} placeholder="默认URL不需要填写"/>
  269. <span class="help-block">
  270. 阿里云oss支持用户自定义访问域名,如果自定义了URL则用自定义的URL,如果未自定义,则用系统生成出来的URL。注:自定义url开头加http://或https://结尾不加 ‘/’例:http://abc.com
  271. </span>
  272. </div>
  273. </div>
  274. <div class="form-group">
  275. <div class="">
  276. <button name="submit" class="btn btn-primary" value="submit">保存配置</button>
  277. <button name="button" type="button" class="btn btn-info js-checkremoteoss" value="check">测试配置(无需保存)</button>
  278. {if !empty($_W['setting']['remote_complete_info']['type']) && !empty($local_attachment)}
  279. <a name="button" class="btn btn-info" href="{php echo url('system/attachment/upload_remote')}">一键上传</a>
  280. {/if}
  281. <input type="hidden" name="token" value="{$_W['token']}" />
  282. </div>
  283. </div>
  284. </div>
  285. <div class="remote-qiniu" {if empty($remote['type']) || $remote['type'] != '3'} style="display:none;" {/if}>
  286. <div class="alert alert-info">
  287. 启用七牛云存储后,请把/attachment目录(不包括此目录)下的子文件及子目录上传至七牛云存储, 相关工具:<br>
  288. <ul class="link-list">
  289. <li><a target="_blank" href="https://portal.qiniu.com/signin" class="product-grey-font" >七牛云存储</a></li>
  290. </ul>
  291. </div>
  292. <div class="form-group">
  293. <label class="col-sm-2 control-label">Accesskey</label>
  294. <div class="col-sm-9">
  295. <input type="text" name="qiniu[accesskey]" class="form-control" value="{$remote['qiniu']['accesskey']}" placeholder="" />
  296. <span class="help-block">用于签名的公钥</span>
  297. </div>
  298. </div>
  299. <div class="form-group">
  300. <label class="col-sm-2 control-label">Secretkey</label>
  301. <div class="col-sm-9">
  302. <input type="text" name="qiniu[secretkey]" class="form-control encrypt" value="{$remote['qiniu']['secretkey']}" placeholder="" />
  303. <span class="help-block">用于签名的私钥</span>
  304. </div>
  305. </div>
  306. <div class="form-group" id="qiniubucket">
  307. <label class="col-sm-2 control-label">Bucket</label>
  308. <div class="col-sm-9">
  309. <input type="text" name="qiniu[bucket]" class="form-control" value="{$remote['qiniu']['bucket']}" placeholder="" />
  310. <span class="help-block">请保证bucket为可公共读取的</span>
  311. </div>
  312. </div>
  313. <div class="form-group">
  314. <label class="col-sm-2 control-label">Url</label>
  315. <div class="col-sm-9">
  316. <input type="text" name="qiniu[url]" class="form-control" value="{$remote['qiniu']['url']}" placeholder="" />
  317. <span class="help-block">七牛支持用户自定义访问域名。注:url开头加http://或https://结尾不加 ‘/’例:http://abc.com</span>
  318. </div>
  319. </div>
  320. <div class="form-group">
  321. <div class="">
  322. <button name="submit" class="btn btn-primary" value="submit">保存配置</button>
  323. <button name="button" type="button" class="btn btn-info js-checkremoteqiniu" value="check">测试配置(无需保存)</button>
  324. {if !empty($_W['setting']['remote_complete_info']['type']) && !empty($local_attachment)}
  325. <a name="button" class="btn btn-info" href="{php echo url('system/attachment/upload_remote')}">一键上传</a>
  326. {/if}
  327. <input type="hidden" name="token" value="{$_W['token']}" />
  328. </div>
  329. </div>
  330. </div>
  331. <div class="remote-cos" {if empty($remote['type']) || $remote['type'] != '4'} style="display:none;" {/if}>
  332. <div class="alert alert-info">
  333. 启用腾讯云cos对象存储后,请把/attachment目录(不包括此目录)下的子文件及子目录上传至腾讯云存储, 相关工具:<br>
  334. <ul class="link-list">
  335. <li><a target="_blank" href="https://console.qcloud.com/cos/bucket" class="product-grey-font" >腾讯云存储</a></li>
  336. </ul>
  337. </div>
  338. <div class="form-group">
  339. <label class="col-sm-2 control-label">APPID</label>
  340. <div class="col-sm-9">
  341. <input type="text" name="cos[appid]" class="form-control" value="{$remote['cos']['appid']}" placeholder="" />
  342. <span class="help-block">APPID 是您项目的唯一ID</span>
  343. </div>
  344. </div>
  345. <div class="form-group">
  346. <label class="col-sm-2 control-label">SecretID</label>
  347. <div class="col-sm-9">
  348. <input type="text" name="cos[secretid]" class="form-control" value="{$remote['cos']['secretid']}" placeholder="" />
  349. <span class="help-block">SecretID 是您项目的安全秘钥,具有该账户完全的权限,请妥善保管</span>
  350. </div>
  351. </div>
  352. <div class="form-group">
  353. <label class="col-sm-2 control-label">SecretKEY</label>
  354. <div class="col-sm-9">
  355. <input type="text" name="cos[secretkey]" class="form-control encrypt" value="{$remote['cos']['secretkey']}" placeholder="" />
  356. <span class="help-block">SecretKEY 是您项目的安全秘钥,具有该账户完全的权限,请妥善保管</span>
  357. </div>
  358. </div>
  359. <div class="form-group" id="cosbucket">
  360. <label class="col-sm-2 control-label">Bucket</label>
  361. <div class="col-sm-9">
  362. <input type="text" name="cos[bucket]" class="form-control" value="{$remote['cos']['bucket']}" placeholder="" />
  363. <span class="help-block">请保证bucket为可公共读取的</span>
  364. </div>
  365. </div>
  366. <div class="form-group" id="cos_local">
  367. <label class="col-xs-12 col-sm-3 col-md-2 control-label">bucket所在区域</label>
  368. <div class="col-sm-9 col-xs-12">
  369. <select class="form-control" name="cos[local]">
  370. <option value="" {if $remote['cos']['local'] == ''}selected{/if}>无</option>
  371. <option value="tj" {if $remote['cos']['local'] == 'tj'}selected{/if}>华北</option>
  372. <option value="sh" {if $remote['cos']['local'] == 'sh'}selected{/if}>华东</option>
  373. <option value="gz" {if $remote['cos']['local'] == 'gz'}selected{/if}>华南</option>
  374. <option value="cd" {if $remote['cos']['local'] == 'cd'}selected{/if}>西南</option>
  375. <option value="bj" {if $remote['cos']['local'] == 'bj'}selected{/if}>北京</option>
  376. <option value="sgp" {if $remote['cos']['local'] == 'sgp'}selected{/if}>新加坡</option>
  377. <option value="hk" {if $remote['cos']['local'] == 'hk'}selected{/if}>香港</option>
  378. <option value="ca" {if $remote['cos']['local'] == 'ca'}selected{/if}>多伦多</option>
  379. <option value="ger" {if $remote['cos']['local'] == 'ger'}selected{/if}>法兰克福</option>
  380. </select>
  381. <span class="help-block">选择bucket对应的区域,如果没有选择无</span>
  382. </div>
  383. </div>
  384. <div class="form-group" >
  385. <label class="col-sm-2 control-label">Url</label>
  386. <div class="col-sm-9">
  387. <input type="text" name="cos[url]" class="form-control" value="{$remote['cos']['url']}" placeholder="" />
  388. <span class="help-block">腾讯云支持用户自定义访问域名。注:url开头加http://或https://结尾不加 ‘/’例:http://abc.com</span>
  389. </div>
  390. </div>
  391. <div class="form-group">
  392. <div class="">
  393. <button name="submit" class="btn btn-primary" value="submit">保存配置</button>
  394. <button name="button" type="button" class="btn btn-info js-checkremotecos" value="check">测试配置(无需保存)</button>
  395. {if !empty($_W['setting']['remote_complete_info']['type']) && !empty($local_attachment)}
  396. <a name="button" class="btn btn-info" href="{php echo url('system/attachment/upload_remote')}">一键上传</a>
  397. {/if}
  398. <input type="hidden" name="token" value="{$_W['token']}" />
  399. </div>
  400. </div>
  401. </div>
  402. <div class="remote-close" {if !empty($remote['type'])} style="display:none;" {/if}>
  403. <div class="form-group">
  404. <div class="">
  405. <button name="submit" class="btn btn-primary" value="submit">保存配置</button>
  406. <input type="hidden" name="token" value="{$_W['token']}" />
  407. </div>
  408. </div>
  409. </div>
  410. </form>
  411. <script type="text/javascript">
  412. $(function() {
  413. $('.encrypt').val(function() {
  414. return util.encrypt($(this).val());
  415. });
  416. });
  417. $('.js-checkremoteftp').on('click', function(){
  418. var ssl = parseInt($(':radio[name="ftp[ssl]"]:checked').val());
  419. var pasv = parseInt($(':radio[name="ftp[pasv]"]:checked').val());
  420. var param = {
  421. 'ssl' : ssl,
  422. 'host' : $.trim($(':text[name="ftp[host]"]').val()),
  423. 'username' : $.trim($(':text[name="ftp[username]"]').val()),
  424. 'password' : $.trim($(':text[name="ftp[password]"]').val()),
  425. 'pasv' : pasv,
  426. 'dir': $.trim($(':text[name="ftp[dir]"]').val()),
  427. 'url': $.trim($(':text[name="ftp[url]"]').val()),
  428. 'port' : parseInt($(':text[name="ftp[port]"]').val()),
  429. 'overtime' : parseInt($(':text[name="ftp[overtime]"]').val())
  430. };
  431. $.post("{php echo url('system/attachment/ftp')}", param, function(data){
  432. var data = $.parseJSON(data);
  433. if(data.message.errno == 0) {
  434. util.message(data.message.message);
  435. return false;
  436. }
  437. if(data.message.errno < 0) {
  438. util.message(data.message.message);
  439. return false;
  440. }
  441. });
  442. });
  443. $('.js-checkremoteoss').on('click', function(){
  444. var bucket = $.trim($('select[name="alioss[bucket]"]').val());
  445. if (bucket == '') {
  446. bucket = $.trim($(':text[name="alioss[bucket]"]').val());
  447. }
  448. var param = {
  449. 'key' : $.trim($(':text[name="alioss[key]"]').val()),
  450. 'secret' : $.trim($(':text[name="alioss[secret]"]').val()),
  451. 'url' : $.trim($(':text[name="custom[url]"]').val()),
  452. 'bucket' : bucket
  453. };
  454. $.post("{php echo url('system/attachment/oss')}",param, function(data) {
  455. var data = $.parseJSON(data);
  456. if(data.message.errno == 0) {
  457. util.message('配置成功');
  458. return false;
  459. }
  460. if(data.message.errno < 0) {
  461. util.message(data.message.message);
  462. return false;
  463. }
  464. });
  465. });
  466. $('.js-checkremoteqiniu').on('click', function(){
  467. var key = $.trim($(':text[name="qiniu[accesskey]"]').val());
  468. if (key == '') {
  469. util.message('请填写Accesskey');
  470. return false;
  471. }
  472. var secret = $.trim($(':text[name="qiniu[secretkey]"]').val());
  473. if (secret == '') {
  474. util.message('请填写Secretkey');
  475. return false;
  476. }
  477. var param = {
  478. 'accesskey' : $.trim($(':text[name="qiniu[accesskey]"]').val()),
  479. 'secretkey' : $.trim($(':text[name="qiniu[secretkey]"]').val()),
  480. 'url' : $.trim($(':text[name="qiniu[url]"]').val()),
  481. 'bucket' : $.trim($(':text[name="qiniu[bucket]"]').val())
  482. };
  483. $.post("{php echo url('system/attachment/qiniu')}",param, function(data) {
  484. var data = $.parseJSON(data);
  485. if(data.message.errno == 0) {
  486. util.message('配置成功');
  487. return false;
  488. }
  489. if(data.message.errno < 0) {
  490. util.message(data.message.message);
  491. return false;
  492. }
  493. });
  494. });
  495. $('.js-checkremotecos').on('click', function(){
  496. var appid = $.trim($(':text[name="cos[appid]"]').val());
  497. if (appid == '') {
  498. util.message('请填写APPID');
  499. return false;
  500. }
  501. var secretid = $.trim($(':text[name="cos[secretid]"]').val());
  502. if (secretid == '') {
  503. util.message('请填写secretid');
  504. return false;
  505. }
  506. var secretkey = $.trim($(':text[name="cos[secretkey]"]').val());
  507. if (secretkey == '') {
  508. util.message('请填写Secretkey');
  509. return false;
  510. }
  511. var bucket = $.trim($(':text[name="cos[bucket]"]').val());
  512. if (bucket == '') {
  513. util.message('请填写bucket');
  514. return false;
  515. }
  516. var url = $.trim($(':text[name="cos[url]"]').val());
  517. var local = $('[name="cos[local]"]').val();
  518. var param = {
  519. 'appid' : appid,
  520. 'secretid' : secretid,
  521. 'secretkey' : secretkey,
  522. 'bucket' : bucket,
  523. 'url' : url,
  524. 'local' : local
  525. };
  526. $.post("{php echo url('system/attachment/cos')}",param, function(data) {
  527. var data = $.parseJSON(data);
  528. if(data.message.errno == 0) {
  529. util.message('配置成功');
  530. return false;
  531. }
  532. if(data.message.errno < 0) {
  533. util.message(data.message.message);
  534. return false;
  535. }
  536. });
  537. });
  538. var alibucket = '{$_W['setting']['remote']['alioss']['bucket']}';
  539. var buck = function() {
  540. var key = $(':text[name="alioss[key]"]').val();
  541. var secret = $(':text[name="alioss[secret]"]').val();
  542. if (secret.indexOf('*') > 0) {
  543. secret = '{$_W['setting']['remote']['alioss']['secret']}';
  544. }
  545. if (key == '' || secret == '') {
  546. $('#bucket').hide();
  547. return false;
  548. }
  549. $.post("{php echo url('system/attachment/buckets')}", {'key' : key, 'secret' : secret}, function(data) {
  550. try {
  551. var data = $.parseJSON(data);
  552. } catch (error) {
  553. util.message('Access Key ID 或 Access Key Secret 填写错误,请重新填写。', '', 'error');
  554. $('#bucket').hide();
  555. $('select[name="alioss[bucket]"]').val('');
  556. return false;
  557. }
  558. if (data.message.errno < 0 ) {
  559. return false;
  560. } else {
  561. $('#bucket').show();
  562. var bucket = $('select[name="alioss[bucket]"]');
  563. bucket.empty();
  564. var buckets = eval(data.message.message);
  565. for (var i in buckets) {
  566. var selected = alibucket == buckets[i]['name'] || alibucket == buckets[i]['name'] + '@@' + buckets[i]['location'] ? 'selected' : '';
  567. bucket.append('<option value="' + buckets[i]['name'] + '@@' + buckets[i]['location'] + '"' + selected + '>'+buckets[i]['loca_name'] + '</option>');
  568. }
  569. }
  570. });
  571. };
  572. buck();
  573. $(':text[name="alioss[secret]"]').blur(function() {buck();});
  574. $('form').submit(function() {
  575. if ($('[name="type"]:checked').val() == 2 && ($('select[name="alioss[bucket]"]').val() == null || $('select[name="alioss[bucket]"]').val() == '')) {
  576. util.message('请完善信息后再保存设置!');
  577. return false;
  578. }
  579. });
  580. </script>
  581. {/if}
  582. {template 'common/footer'}