Basf_TCC7/HJGL/FineUIPro.Web/AttachFile/webuploader.aspx

194 lines
8.2 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="webuploader.aspx.cs" Inherits="FineUIPro.Web.AttachFile.webuploader" %>
<!DOCTYPE html>
<html>
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<link href="../../res/css/common.css" rel="stylesheet" type="text/css" />
<meta name="sourcefiles" content="~/AttachFile/fileupload.ashx" />
<style>
.webuploader-element-invisible {
position: absolute !important;
clip: rect(1px,1px,1px,1px);
}
.webuploader-pick-disable {
opacity: 0.6;
pointer-events: none;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<f:PageManager ID="PageManager1" runat="server" />
<f:Grid ID="Grid1" runat="server" ShowHeader="false" ShowBorder="true" Title="文件上传"
Width="650px" Height="360px"
EnableCollapse="false" EnableCheckBoxSelect="false" EmptyText="尚未上传文件"
DataIDField="id" OnRowCommand="Grid1_RowCommand">
<Toolbars>
<f:Toolbar ID="toolBar1" runat="server">
<Items>
<f:Button ID="btnSelectFiles" Text="选择文件上传" IconFont="Plus" runat="server" EnablePostBack="false">
</f:Button>
<f:ToolbarSeparator runat="server"></f:ToolbarSeparator>
<f:Button ID="btnDelete" Text="删除选中文件" IconFont="Remove" runat="server" OnClick="btnDelete_Click">
</f:Button>
<f:Button ID="btnSave" Text="保存" Icon="Add" runat="server" OnClick="btnSave_Click">
</f:Button>
<f:Button ID="Button1" Text="转化" Icon="Add" runat="server" OnClick="btnChange_Click" Hidden="true">
</f:Button>
</Items>
</f:Toolbar>
</Toolbars>
<Columns>
<f:LinkButtonField ColumnID="FileName" DataTextField="name" DataToolTipField="name" HeaderText="文件名" ExpandUnusedSpace="True" CommandName="Attach"/>
<f:BoundField ColumnID="FileType" DataField="type" HeaderText="类型" Width="80px" />
<f:RenderField ColumnID="FileSize" DataField="size" HeaderText="大小" Renderer="FileSize" Width="90px" />
<f:BoundField ColumnID='FileStatus' DataField="status" NullDisplayText="已完成" HeaderText="状态" Width="90px" />
<f:LinkButtonField Width="60px" ConfirmText="你确定要删除这个文件吗?" ConfirmTarget="Top" ToolTip="删除"
HeaderText="删除" CommandName="Delete" IconUrl="~/res/icon/delete.png" />
</Columns>
</f:Grid>
<br />
本多附件上传支持的浏览器版本为Chrome、Firefox、Safari、IE10+ 。
</form>
<script src="res/webuploader/webuploader.nolog.min.js" type="text/javascript"></script>
<script type="text/javascript">
var btnDeleteClientID = '<%= btnDelete.ClientID %>';
var btnSelectFilesClientID = '<%= btnSelectFiles.ClientID %>';
var gridClientID = '<%= Grid1.ClientID %>';
var BASE_URL = '<%= ResolveUrl("~/") %>';
var SERVER_URL = BASE_URL + 'AttachFile/fileupload.ashx';
// sizeLimit 单个文件大小限制单位为MB
function initUploader(gridId, pickerId, ownerId, accept, sizeLimit, success) {
var grid = F(gridId);
var uploaderOptions = {
// swf文件路径
swf: BASE_URL + 'AttachFile/res/webuploader/Uploader.swf',
// 文件接收服务端。
server: SERVER_URL,
// 选择文件的按钮。可选。
// 内部根据当前运行是创建可能是input元素也可能是flash.
pick: '#' + pickerId,
// 不压缩image, 默认如果是jpeg文件上传前会压缩一把再上传
resize: false,
// 自动上传
auto: true,
// 文件上传参数表用来标记文件的所有者如果是一篇文章的附件就是文章的ID
formData: {
owner: ownerId
},
// 单个文件大小限制单位byte这里限制为 10M
fileSingleSizeLimit: sizeLimit * 1024 * 1024
};
if (accept) {
$.extend(uploaderOptions, {
accept: accept
});
}
var uploader = WebUploader.create(uploaderOptions);
// 添加到上传队列
uploader.on('fileQueued', function (file) {
grid.addNewRecord(file.id, {
'FileName': file.name,
'FileSize': file.size,
'FileStatus': '等待上传'
}, true);
});
uploader.on('uploadProgress', function (file, percentage) {
var cellEl = grid.getCellEl(file.id, 'FileStatus').find('.f-grid-cell-inner');
var barEl = cellEl.find('.ui-progressbar-value');
// 避免重复创建
if (!barEl.length) {
cellEl.html('<div class="ui-progressbar ui-widget ui-widget-content ui-corner-all" style="height:12px;">' +
'<div class="ui-progressbar-value ui-widget-header ui-corner-left" style="width:0%">' +
'</div></div>');
barEl = cellEl.find('.ui-progressbar-value');
}
barEl.css('width', percentage * 100 + '%');
});
uploader.on('uploadSuccess', function (file) {
var cellEl = grid.getCellEl(file.id, 'FileStatus').find('.f-grid-cell-inner');
cellEl.text('上传成功');
});
uploader.on('uploadError', function (file) {
var cellEl = grid.getCellEl(file.id, 'FileStatus').find('.f-grid-cell-inner');
cellEl.text('上传出错');
});
// 不管上传成功还是失败,都会触发 uploadComplete 事件
uploader.on('uploadComplete', function (file) {
uploader.removeFile(file, true);
});
// 所有文件上传成功
uploader.on('uploadFinished', function () {
if (success) {
success.call(uploader);
}
});
uploader.on('error', function (type, arg, file) {
if (type === 'F_EXCEED_SIZE') {
F.alert('文件[' + file.name + ']大小超出限制值(' + F.format.fileSize(arg) + '');
}
});
}
F.ready(function () {
if ('<%= FileType%>' == '1') {
initUploader(gridClientID, btnSelectFilesClientID, '<%= ParamStr%>', {
extensions: 'gif,jpg,jpeg,bmp,png',
mimeTypes: 'image/*'
}, 50, function () {
__doPostBack('', 'RebindGrid');
});
}
else if ('<%= FileType%>' == '2') {
initUploader(gridClientID, btnSelectFilesClientID, '<%= ParamStr%>', {
extensions: 'doc,docx',
mimeTypes: '.doc,.docx'
}, 50, function () {
__doPostBack('', 'RebindGrid');
});
}
else {
initUploader(gridClientID, btnSelectFilesClientID, '<%= ParamStr%>',
{
extensions: 'gif,jpg,jpeg,bmp,png,doc,docx,xls,xlsx,csv,ppt,pptx,pdf,txt,dwg,zip,rar,mp3,mp4,rm,rmvb,mpeg1-4,mov,mtv,dat,wmv,avi,3gp,amv,dmv ',
mimeTypes: '.gif,.jpg,.jpeg,.bmp,.png,.doc,.docx,.xls,.xlsx,.csv,.ppt,.pptx,.pdf,.txt,.dwg,.zip,.rar,.mp3,.mp4,.rm,.rmvb,.mpeg1-4,.mov,.mtv,.dat,.wmv,.avi,.3gp,.amv,.dmv'
}, 50, function () {
__doPostBack('', 'RebindGrid');
});
}
});
</script>
</body>
</html>