mirror of
https://gitee.com/ulthon/ul-file-share.git
synced 2026-07-01 11:02:49 +08:00
新增版本信息;增加站点名称;
This commit is contained in:
@@ -1,45 +1,47 @@
|
||||
<div class="ul-header ">
|
||||
<div class="ul-header-main" style="max-width: 1000px;padding: 0 15px">
|
||||
<div class="ul-header-main" style="max-width: 1000px;padding: 0 15px">
|
||||
|
||||
<div class="ul-header-left">
|
||||
<div class="">
|
||||
<img class="ul-header-logo" src="{:get_source_link(get_system_config('site_logo'))}" alt="">
|
||||
</div>
|
||||
<a href="/" class="ul-header-left">
|
||||
<div class="" style="">
|
||||
<img class="ul-header-logo" src="{:get_source_link(get_system_config('site_logo'))}" alt="">
|
||||
{:get_system_config('site_name')}
|
||||
</div>
|
||||
|
||||
</a>
|
||||
<div class="ul-header-right">
|
||||
{if $user.type == 'temp' }
|
||||
|
||||
<div class="ul-header-user">
|
||||
<div class="ul-header-user-avatar">
|
||||
|
||||
</div>
|
||||
<div class="ul-header-user-info">
|
||||
<div class="ul-header-user-name">
|
||||
临时账号
|
||||
</div>
|
||||
<a href="{$ulthon_login_url}" class="ul-header-user-options">
|
||||
<i class="ul-icon-exit"></i>
|
||||
<span>登陆</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
{else /}
|
||||
<div class="ul-header-user">
|
||||
<div class="ul-header-user-avatar" style="background-image: url({$user.avatar});">
|
||||
</div>
|
||||
<div class="ul-header-user-info">
|
||||
<div class="ul-header-user-name">
|
||||
{$user.nickname}
|
||||
</div>
|
||||
<a href="{:url('logout')}" class="ul-header-user-options">
|
||||
<i class="ul-icon-exit"></i>
|
||||
<span>退出</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
<div class="ul-header-right">
|
||||
{if $user.type == 'temp' }
|
||||
|
||||
<div class="ul-header-user">
|
||||
<div class="ul-header-user-avatar">
|
||||
|
||||
</div>
|
||||
<div class="ul-header-user-info">
|
||||
<div class="ul-header-user-name">
|
||||
临时账号
|
||||
</div>
|
||||
<a href="{$ulthon_login_url}" class="ul-header-user-options">
|
||||
<i class="ul-icon-exit"></i>
|
||||
<span>登陆</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
{else /}
|
||||
<div class="ul-header-user">
|
||||
<div class="ul-header-user-avatar" style="background-image: url({$user.avatar});">
|
||||
</div>
|
||||
<div class="ul-header-user-info">
|
||||
<div class="ul-header-user-name">
|
||||
{$user.nickname}
|
||||
</div>
|
||||
<a href="{:url('logout')}" class="ul-header-user-options">
|
||||
<i class="ul-icon-exit"></i>
|
||||
<span>退出</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -2,332 +2,366 @@
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>{:get_system_config('site_name')}</title>
|
||||
{include file='common/_require'/}
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>{:get_system_config('site_name')}</title>
|
||||
{include file='common/_require'/}
|
||||
|
||||
<!-- <link rel="stylesheet" href="/static/lib/webuploader/webuploader.css"> -->
|
||||
<!-- <link rel="stylesheet" href="/static/lib/webuploader/webuploader.css"> -->
|
||||
|
||||
<style>
|
||||
.webuploader-element-invisible {
|
||||
display: none;
|
||||
}
|
||||
<style>
|
||||
.webuploader-element-invisible {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.option-item {
|
||||
margin-bottom: 0 !important;
|
||||
}
|
||||
.option-item {
|
||||
margin-bottom: 0 !important;
|
||||
}
|
||||
|
||||
.file-progress {
|
||||
margin-right: 15px;
|
||||
}
|
||||
.file-progress {
|
||||
margin-right: 15px;
|
||||
}
|
||||
|
||||
.files {
|
||||
border: 1px dashed #bbb;
|
||||
padding: 15px;
|
||||
}
|
||||
</style>
|
||||
<script src="/static/lib/webuploader/webuploader.min.js"></script>
|
||||
.files {
|
||||
border: 1px dashed #bbb;
|
||||
padding: 15px;
|
||||
}
|
||||
</style>
|
||||
<script src="/static/lib/webuploader/webuploader.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
{include file='common/_header'/}
|
||||
<div class="layui-container" style="margin-top: 15px;;">
|
||||
<div class="layui-row">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header">发送文件</div>
|
||||
<div class="layui-card-body">
|
||||
<div class="file-list">
|
||||
{include file='common/_header'/}
|
||||
<div class="layui-container" style="margin-top: 15px;;">
|
||||
<div class="layui-row">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header">发送文件</div>
|
||||
<div class="layui-card-body">
|
||||
<div class="file-list">
|
||||
|
||||
</div>
|
||||
<div class="file-options">
|
||||
<form class="layui-form layui-form-pane" action="">
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-inline">
|
||||
<div class="layui-btn-container">
|
||||
<div class="layui-btn " id="picker">选择文件</div>
|
||||
<button class="layui-btn submit" type="submit" lay-filter="submit" lay-submit>提交分享</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">密码</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" name="password" value="{:substr(uniqid(),-6)}" autocomplete="off" placeholder="可以为空" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">下载次数</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="number" name="times" autocomplete="off" placeholder="不限制下载次数" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">保存时长</label>
|
||||
<div class="layui-input-inline">
|
||||
<select name="expire" lay-verify="">
|
||||
<option value="3600">1小时</option>
|
||||
<option value="10800">3小时</option>
|
||||
<option value="28800">8小时</option>
|
||||
<option value="86400">24小时</option>
|
||||
<option value="259200">3天</option>
|
||||
<option value="604800">7天</option>
|
||||
<option value="0" disabled>永久</option>
|
||||
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="file-options">
|
||||
<form class="layui-form layui-form-pane" action="">
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-inline">
|
||||
<div class="layui-btn-container">
|
||||
<div class="layui-btn " id="picker">选择文件</div>
|
||||
<button class="layui-btn submit" type="submit" lay-filter="submit" lay-submit>提交分享</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">密码</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" name="password" value="{:substr(uniqid(),-6)}" autocomplete="off" placeholder="可以为空" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">下载次数</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="number" name="times" autocomplete="off" placeholder="不限制下载次数" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">保存时长</label>
|
||||
<div class="layui-input-inline">
|
||||
<select name="expire" lay-verify="">
|
||||
<option value="3600">1小时</option>
|
||||
<option value="10800">3小时</option>
|
||||
<option value="28800">8小时</option>
|
||||
<option value="86400">24小时</option>
|
||||
<option value="259200">3天</option>
|
||||
<option value="604800">7天</option>
|
||||
<option value="0" disabled>永久</option>
|
||||
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-row" style="margin-top: 15px;">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header">分享记录</div>
|
||||
<div class="layui-card-body">
|
||||
{empty name='list_active_shares'}
|
||||
<div class="ul-padding-md layui-bg-gray">
|
||||
<div class="ul-info-tips">
|
||||
当前没有数据
|
||||
</div>
|
||||
</div>
|
||||
{else /}
|
||||
<table class="layui-table" lay-skin="line">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>分享信息</th>
|
||||
<th>访问统计</th>
|
||||
<th>密码</th>
|
||||
<th>剩余次数</th>
|
||||
<th>过期时间</th>
|
||||
<th>操作</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{volist name='list_active_shares' id='vo'}
|
||||
<tr>
|
||||
<td>
|
||||
<p style="font-weight: 600;font-size: 16px;line-height: 2;">分享链接:
|
||||
<a href="{$vo.read_url}" target="_blank">{$vo.uid}</a>
|
||||
</p>
|
||||
<p>分享时间:{$vo.create_time}</p>
|
||||
<p>文件大小:{$vo.total_size_format}</p>
|
||||
<div>
|
||||
<span>文件列表:</span>
|
||||
<span class="layui-btn layui-btn-xs show-files">显示</span>
|
||||
<div class="files" style="display: none;">
|
||||
{volist name='vo.files' id='file'}
|
||||
<p>{$file.file_name}</p>
|
||||
{/volist}
|
||||
</div>
|
||||
<div class="layui-row" style="margin-top: 15px;">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header">分享记录</div>
|
||||
<div class="layui-card-body">
|
||||
{empty name='list_active_shares'}
|
||||
<div class="ul-padding-md layui-bg-gray">
|
||||
<div class="ul-info-tips">
|
||||
当前没有数据
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<p>下载次数:{$vo.times_download}</p>
|
||||
<p>访问次数:{$vo.visit}</p>
|
||||
</td>
|
||||
<td>
|
||||
{empty name='vo.password'}
|
||||
无密码
|
||||
{else /}
|
||||
{$vo.password}
|
||||
{/empty}
|
||||
</td>
|
||||
<td>
|
||||
{empty name='vo.times'}
|
||||
无限制
|
||||
{else /}
|
||||
{$vo.times_last}/{$vo.times}
|
||||
{/empty}
|
||||
</td>
|
||||
<td>{$vo.expire_date}</td>
|
||||
<td>
|
||||
<div>
|
||||
<div class="layui-btn layui-btn-sm">立即下架</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
{/volist}
|
||||
{else /}
|
||||
<table class="layui-table" lay-skin="line">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>分享信息</th>
|
||||
<th>访问统计</th>
|
||||
<th>密码</th>
|
||||
<th>剩余次数</th>
|
||||
<th>过期时间</th>
|
||||
<th>操作</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{volist name='list_active_shares' id='vo'}
|
||||
<tr>
|
||||
<td>
|
||||
<p style="font-weight: 600;font-size: 16px;line-height: 2;">分享链接:
|
||||
<a href="{$vo.read_url}" target="_blank">{$vo.uid}</a>
|
||||
</p>
|
||||
<p>分享时间:{$vo.create_time}</p>
|
||||
<p>文件大小:{$vo.total_size_format}</p>
|
||||
<div>
|
||||
<span>文件列表:</span>
|
||||
<span class="layui-btn layui-btn-xs show-files">显示</span>
|
||||
<div class="files" style="display: none;">
|
||||
{volist name='vo.files' id='file'}
|
||||
<p>{$file.file_name}</p>
|
||||
{/volist}
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<p>下载次数:{$vo.times_download}</p>
|
||||
<p>访问次数:{$vo.visit}</p>
|
||||
</td>
|
||||
<td>
|
||||
{empty name='vo.password'}
|
||||
无密码
|
||||
{else /}
|
||||
{$vo.password}
|
||||
{/empty}
|
||||
</td>
|
||||
<td>
|
||||
{empty name='vo.times'}
|
||||
无限制
|
||||
{else /}
|
||||
{$vo.times_last}/{$vo.times}
|
||||
{/empty}
|
||||
</td>
|
||||
<td>{$vo.expire_date}</td>
|
||||
<td>
|
||||
<div>
|
||||
<div class="layui-btn layui-btn-sm">立即下架</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
{/volist}
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
{/empty}
|
||||
</tbody>
|
||||
</table>
|
||||
{/empty}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-row" style="margin-top: 15px;">
|
||||
<div class="footer">
|
||||
<span>{:get_system_config('site_copyright')}</span>
|
||||
<a href="http://www.beian.miit.gov.cn/">{:get_system_config('site_beian')}</a>
|
||||
<a href="{:get_system_config('site_safe_beian_url')}">{:get_system_config('site_safe_beian')}</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-row" style="margin-top: 15px;">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header">分享记录</div>
|
||||
<div class="layui-card-body">
|
||||
<script src='https://gitee.com/ulthon/ul-file-share/widget_preview' async defer></script>
|
||||
<div id="osc-gitee-widget-tag"></div>
|
||||
<style>
|
||||
.osc_pro_color {
|
||||
color: #4183c4 !important;
|
||||
}
|
||||
|
||||
<div style="display: none;" class="tpl">
|
||||
<div class="file-item">
|
||||
<div class="file-info">
|
||||
<span class="file-name">3600.zip</span>
|
||||
<span class="file-size">16k</span>
|
||||
</div>
|
||||
.osc_panel_color {
|
||||
background-color: #ffffff !important;
|
||||
}
|
||||
|
||||
<div class="file-options" style="display: flex;">
|
||||
<span class="file-progress">等待上传</span>
|
||||
<div class="layui-btn-container">
|
||||
<div class="option-item layui-btn layui-btn-xs delete">删除</div>
|
||||
<!-- <div class="option-item layui-btn layui-btn-xs pause" style="display: none;">暂停</div> -->
|
||||
<!-- <div class="option-item layui-btn layui-btn-xs start" style="display: none;">继续</div> -->
|
||||
<div class="option-item layui-btn layui-btn-xs retry" style="display: none;">重新上传</div>
|
||||
.osc_background_color {
|
||||
background-color: #ffffff !important;
|
||||
}
|
||||
|
||||
.osc_border_color {
|
||||
border-color: #e3e9ed !important;
|
||||
}
|
||||
|
||||
.osc_desc_color {
|
||||
color: #666666 !important;
|
||||
}
|
||||
|
||||
.osc_link_color * {
|
||||
color: #9b9b9b !important;
|
||||
}
|
||||
</style>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-row" style="margin-top: 15px;">
|
||||
<div class="footer">
|
||||
<span>{:get_system_config('site_copyright')}</span>
|
||||
<a href="http://www.beian.miit.gov.cn/">{:get_system_config('site_beian')}</a>
|
||||
<a href="{:get_system_config('site_safe_beian_url')}">{:get_system_config('site_safe_beian')}</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
var BASE_URL = '/static/lib/webuploader'
|
||||
var uploader = WebUploader.create({
|
||||
auto: true,
|
||||
// swf文件路径
|
||||
swf: BASE_URL + '/Uploader.swf',
|
||||
paste: document.body,
|
||||
dnd: '.file-list',
|
||||
fileVal: 'file',
|
||||
disableGlobalDnd: true,
|
||||
// 文件接收服务端。
|
||||
server: '{:url("File/webSave")}',
|
||||
<div style="display: none;" class="tpl">
|
||||
<div class="file-item">
|
||||
<div class="file-info">
|
||||
<span class="file-name">3600.zip</span>
|
||||
<span class="file-size">16k</span>
|
||||
</div>
|
||||
|
||||
// 选择文件的按钮。可选。
|
||||
// 内部根据当前运行是创建,可能是input元素,也可能是flash.
|
||||
pick: '#picker',
|
||||
<div class="file-options" style="display: flex;">
|
||||
<span class="file-progress">等待上传</span>
|
||||
<div class="layui-btn-container">
|
||||
<div class="option-item layui-btn layui-btn-xs delete">删除</div>
|
||||
<!-- <div class="option-item layui-btn layui-btn-xs pause" style="display: none;">暂停</div> -->
|
||||
<!-- <div class="option-item layui-btn layui-btn-xs start" style="display: none;">继续</div> -->
|
||||
<div class="option-item layui-btn layui-btn-xs retry" style="display: none;">重新上传</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
// 不压缩image, 默认如果是jpeg,文件上传前会压缩一把再上传!
|
||||
resize: false
|
||||
});
|
||||
<script>
|
||||
var BASE_URL = '/static/lib/webuploader'
|
||||
var uploader = WebUploader.create({
|
||||
auto: true,
|
||||
// swf文件路径
|
||||
swf: BASE_URL + '/Uploader.swf',
|
||||
paste: document.body,
|
||||
dnd: '.file-list',
|
||||
fileVal: 'file',
|
||||
disableGlobalDnd: true,
|
||||
// 文件接收服务端。
|
||||
server: '{:url("File/webSave")}',
|
||||
|
||||
uploader.on('fileQueued', function (file) {
|
||||
// 选择文件的按钮。可选。
|
||||
// 内部根据当前运行是创建,可能是input元素,也可能是flash.
|
||||
pick: '#picker',
|
||||
|
||||
var fileDom = $('.tpl .file-item').clone()
|
||||
// 不压缩image, 默认如果是jpeg,文件上传前会压缩一把再上传!
|
||||
resize: false
|
||||
});
|
||||
|
||||
fileDom.addClass('file-item-' + file.id)
|
||||
uploader.on('fileQueued', function (file) {
|
||||
|
||||
fileDom.find('.file-name').text(file.name)
|
||||
var fileDom = $('.tpl .file-item').clone()
|
||||
|
||||
fileDom.find('.file-size').text(formatSize(file.size))
|
||||
fileDom.addClass('file-item-' + file.id)
|
||||
|
||||
fileDom.appendTo('.file-list')
|
||||
fileDom.find('.option-item').hide()
|
||||
fileDom.find('.delete').click(function () {
|
||||
uploader.removeFile(file, true);
|
||||
fileDom.remove()
|
||||
}).show();
|
||||
fileDom.find('.retry').click(function () {
|
||||
uploader.retry(file)
|
||||
})
|
||||
fileDom.find('.start').click(function () {
|
||||
uploader.upload(file)
|
||||
})
|
||||
fileDom.find('.pause').click(function () {
|
||||
fileDom.find('.option-item').hide()
|
||||
fileDom.find('.start').show()
|
||||
uploader.stop(file)
|
||||
fileDom.find('.file-name').text(file.name)
|
||||
|
||||
})
|
||||
});
|
||||
fileDom.find('.file-size').text(formatSize(file.size))
|
||||
|
||||
uploader.on('uploadProgress', function (file, percentage) {
|
||||
var percentTitle = parseInt(percentage * 100) + '%';
|
||||
$('.file-item-' + file.id).find('.file-progress').text(percentTitle)
|
||||
})
|
||||
uploader.on('uploadStart', function (file) {
|
||||
$('.file-item-' + file.id).find('.option-item').hide()
|
||||
$('.file-item-' + file.id).find('.pause').show()
|
||||
$('.file-item-' + file.id).find('.delete').show()
|
||||
})
|
||||
uploader.on('uploadError', function (file, reason) {
|
||||
$('.file-item-' + file.id).find('.file-progress').text('上传错误:' + reason)
|
||||
$('.file-item-' + file.id).find('.option-item').hide()
|
||||
$('.file-item-' + file.id).find('.retry').show()
|
||||
$('.file-item-' + file.id).find('.delete').show()
|
||||
})
|
||||
uploader.on('uploadSuccess', function (file, reason) {
|
||||
$('.file-item-' + file.id).find('.file-progress').text('上传成功');
|
||||
$('.file-item-' + file.id).data('success', reason.data);
|
||||
$('.file-item-' + file.id).addClass('success')
|
||||
fileDom.appendTo('.file-list')
|
||||
fileDom.find('.option-item').hide()
|
||||
fileDom.find('.delete').click(function () {
|
||||
uploader.removeFile(file, true);
|
||||
fileDom.remove()
|
||||
}).show();
|
||||
fileDom.find('.retry').click(function () {
|
||||
uploader.retry(file)
|
||||
})
|
||||
fileDom.find('.start').click(function () {
|
||||
uploader.upload(file)
|
||||
})
|
||||
fileDom.find('.pause').click(function () {
|
||||
fileDom.find('.option-item').hide()
|
||||
fileDom.find('.start').show()
|
||||
uploader.stop(file)
|
||||
|
||||
$('.file-item-' + file.id).find('.option-item').hide()
|
||||
$('.file-item-' + file.id).find('.delete').show()
|
||||
})
|
||||
})
|
||||
});
|
||||
|
||||
layui.form.on('submit(submit)', function (data) {
|
||||
uploader.on('uploadProgress', function (file, percentage) {
|
||||
var percentTitle = parseInt(percentage * 100) + '%';
|
||||
$('.file-item-' + file.id).find('.file-progress').text(percentTitle)
|
||||
})
|
||||
uploader.on('uploadStart', function (file) {
|
||||
$('.file-item-' + file.id).find('.option-item').hide()
|
||||
$('.file-item-' + file.id).find('.pause').show()
|
||||
$('.file-item-' + file.id).find('.delete').show()
|
||||
})
|
||||
uploader.on('uploadError', function (file, reason) {
|
||||
$('.file-item-' + file.id).find('.file-progress').text('上传错误:' + reason)
|
||||
$('.file-item-' + file.id).find('.option-item').hide()
|
||||
$('.file-item-' + file.id).find('.retry').show()
|
||||
$('.file-item-' + file.id).find('.delete').show()
|
||||
})
|
||||
uploader.on('uploadSuccess', function (file, reason) {
|
||||
$('.file-item-' + file.id).find('.file-progress').text('上传成功');
|
||||
$('.file-item-' + file.id).data('success', reason.data);
|
||||
$('.file-item-' + file.id).addClass('success')
|
||||
|
||||
if (uploader.isInProgress()) {
|
||||
$('.file-item-' + file.id).find('.option-item').hide()
|
||||
$('.file-item-' + file.id).find('.delete').show()
|
||||
})
|
||||
|
||||
layer.msg("正在上传中,请等待上传完成后操作");
|
||||
layui.form.on('submit(submit)', function (data) {
|
||||
|
||||
return false;
|
||||
}
|
||||
if (uploader.isInProgress()) {
|
||||
|
||||
if ($('.file-list .file-item').length == 0) {
|
||||
layer.msg('请选择上传文件')
|
||||
return false;
|
||||
}
|
||||
layer.msg("正在上传中,请等待上传完成后操作");
|
||||
|
||||
if ($('.file-list .file-item').length != $('.file-list .file-item.success').length) {
|
||||
return false;
|
||||
}
|
||||
|
||||
layer.msg('部分文件上传失败,请重新上传或从队列中删除')
|
||||
if ($('.file-list .file-item').length == 0) {
|
||||
layer.msg('请选择上传文件')
|
||||
return false;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
if ($('.file-list .file-item').length != $('.file-list .file-item.success').length) {
|
||||
|
||||
var fileList = []
|
||||
layer.msg('部分文件上传失败,请重新上传或从队列中删除')
|
||||
|
||||
$('.file-list .file-item').each(function (index, elem) {
|
||||
var fileData = $(elem).data('success')
|
||||
return false;
|
||||
}
|
||||
|
||||
fileList.push(fileData)
|
||||
})
|
||||
var fileList = []
|
||||
|
||||
data.field.files_list = fileList
|
||||
window.loading = layer.load()
|
||||
$.post('{:url("save")}', data.field, function (result) {
|
||||
if (result.code != 0) {
|
||||
layer.close(window.loading)
|
||||
layer.msg(result.msg)
|
||||
return false;
|
||||
}
|
||||
$('.file-list .file-item').each(function (index, elem) {
|
||||
var fileData = $(elem).data('success')
|
||||
|
||||
layer.msg('添加成功')
|
||||
fileList.push(fileData)
|
||||
})
|
||||
|
||||
setTimeout(() => {
|
||||
location.reload();
|
||||
}, 1200);
|
||||
})
|
||||
return false;
|
||||
})
|
||||
data.field.files_list = fileList
|
||||
window.loading = layer.load()
|
||||
$.post('{:url("save")}', data.field, function (result) {
|
||||
if (result.code != 0) {
|
||||
layer.close(window.loading)
|
||||
layer.msg(result.msg)
|
||||
return false;
|
||||
}
|
||||
|
||||
$('.show-files').click(function () {
|
||||
var files = $(this).siblings('.files');
|
||||
layer.msg('添加成功')
|
||||
|
||||
if (files.is(':visible')) {
|
||||
files.hide()
|
||||
$(this).text('显示')
|
||||
} else {
|
||||
files.show()
|
||||
$(this).text('隐藏')
|
||||
}
|
||||
})
|
||||
setTimeout(() => {
|
||||
location.reload();
|
||||
}, 1200);
|
||||
})
|
||||
return false;
|
||||
})
|
||||
|
||||
$('.show-files').click(function () {
|
||||
var files = $(this).siblings('.files');
|
||||
|
||||
if (files.is(':visible')) {
|
||||
files.hide()
|
||||
$(this).text('显示')
|
||||
} else {
|
||||
files.show()
|
||||
$(this).text('隐藏')
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
</script>
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -2,87 +2,119 @@
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>{:get_system_config('site_name')}</title>
|
||||
{include file='common/_require'/}
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>{:get_system_config('site_name')}</title>
|
||||
{include file='common/_require'/}
|
||||
|
||||
<!-- <link rel="stylesheet" href="/static/lib/webuploader/webuploader.css"> -->
|
||||
<!-- <link rel="stylesheet" href="/static/lib/webuploader/webuploader.css"> -->
|
||||
|
||||
<style>
|
||||
.webuploader-element-invisible {
|
||||
display: none;
|
||||
}
|
||||
<style>
|
||||
.webuploader-element-invisible {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.option-item {
|
||||
margin-bottom: 0 !important;
|
||||
}
|
||||
.option-item {
|
||||
margin-bottom: 0 !important;
|
||||
}
|
||||
|
||||
.file-progress {
|
||||
margin-right: 15px;
|
||||
}
|
||||
</style>
|
||||
<script src="/static/lib/webuploader/webuploader.min.js"></script>
|
||||
.file-progress {
|
||||
margin-right: 15px;
|
||||
}
|
||||
</style>
|
||||
<script src="/static/lib/webuploader/webuploader.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
{include file='common/_header'/}
|
||||
<div class="layui-container" style="margin-top: 15px;;">
|
||||
<div class="layui-row">
|
||||
<div class="layui-col-md-offset3 layui-col-md6">
|
||||
{include file='common/_header'/}
|
||||
<div class="layui-container" style="margin-top: 15px;;">
|
||||
<div class="layui-row">
|
||||
<div class="layui-col-md-offset3 layui-col-md6">
|
||||
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header">接收文件</div>
|
||||
<div class="layui-card-body">
|
||||
{notempty name='msg'}
|
||||
<blockquote class="layui-elem-quote layui-quote-nm">{$msg}</blockquote>
|
||||
{/notempty}
|
||||
<div class="file-list">
|
||||
{volist name='share_files' id='vo'}
|
||||
<div class="file-item">
|
||||
<div class="file-info">
|
||||
<span class="file-name">{$vo.file_name}</span>
|
||||
<span class="file-size">{$vo.file_size_format}</span>
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header">接收文件</div>
|
||||
<div class="layui-card-body">
|
||||
{notempty name='msg'}
|
||||
<blockquote class="layui-elem-quote layui-quote-nm">{$msg}</blockquote>
|
||||
{/notempty}
|
||||
<div class="file-list">
|
||||
{volist name='share_files' id='vo'}
|
||||
<div class="file-item">
|
||||
<div class="file-info">
|
||||
<span class="file-name">{$vo.file_name}</span>
|
||||
<span class="file-size">{$vo.file_size_format}</span>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
{/volist}
|
||||
</div>
|
||||
<div class="file-options" style="max-width: 300px;margin: 0 auto;">
|
||||
<form class="layui-form layui-form-pane" action="">
|
||||
<input type="hidden" name="do_download" value="1">
|
||||
{notempty name='$share.password'}
|
||||
<div class="layui-form-item">
|
||||
|
||||
<label class="layui-form-label">密码</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="password" value="" autocomplete="off" placeholder="请输入密码" class="layui-input">
|
||||
</div>
|
||||
|
||||
</div>
|
||||
{/notempty}
|
||||
<div class="layui-form-item">
|
||||
<button class="layui-btn layui-btn-fluid submit" type="submit" lay-filter="submit" lay-submit>下载文件</button>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header">开源信息</div>
|
||||
<div class="layui-card-body">
|
||||
<script src='https://gitee.com/ulthon/ul-file-share/widget_preview' async defer></script>
|
||||
<div id="osc-gitee-widget-tag"></div>
|
||||
<style>
|
||||
.osc_pro_color {
|
||||
color: #4183c4 !important;
|
||||
}
|
||||
|
||||
.osc_panel_color {
|
||||
background-color: #ffffff !important;
|
||||
}
|
||||
|
||||
</div>
|
||||
{/volist}
|
||||
.osc_background_color {
|
||||
background-color: #ffffff !important;
|
||||
}
|
||||
|
||||
.osc_border_color {
|
||||
border-color: #e3e9ed !important;
|
||||
}
|
||||
|
||||
.osc_desc_color {
|
||||
color: #666666 !important;
|
||||
}
|
||||
|
||||
.osc_link_color * {
|
||||
color: #9b9b9b !important;
|
||||
}
|
||||
</style>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="file-options" style="max-width: 300px;margin: 0 auto;">
|
||||
<form class="layui-form layui-form-pane" action="">
|
||||
<input type="hidden" name="do_download" value="1">
|
||||
{notempty name='$share.password'}
|
||||
<div class="layui-form-item">
|
||||
|
||||
<label class="layui-form-label">密码</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="password" value="" autocomplete="off" placeholder="请输入密码" class="layui-input">
|
||||
</div>
|
||||
|
||||
</div>
|
||||
{/notempty}
|
||||
<div class="layui-form-item">
|
||||
<button class="layui-btn layui-btn-fluid submit" type="submit" lay-filter="submit" lay-submit>下载文件</button>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
<script>
|
||||
|
||||
|
||||
<script>
|
||||
|
||||
|
||||
</script>
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
Reference in New Issue
Block a user