Originally Posted by
Daniil
Hi @hujq,
We could look at a test case.
<%@ Page Language="C#" AutoEventWireup="true" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
<script runat="server">
protected void UploadClick(object sender, DirectEventArgs e)
{
if (Request.Files.Count > 0)
{
//Files received
var filesReceivedAllKey = Request.Files.AllKeys;
var filesReceived = Request.Files.Keys;
if (FileUploadField1.HasFile)
{
for (int i = 0; i < filesReceived.Count; i++)
{
string aa = filesReceivedAllKey[i];
string filePath = "~/UploadFile/" + i.ToString();
//((FileUploadField)FindControl(filesReceivedAllKey[i].ToString())).PostedFile.SaveAs(MapPath(filePath));
FileUploadField1.PostedFile.SaveAs(MapPath(filePath));
}
}
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<script type="text/javascript">
var UpdateUploadInfo = function (el, label) {
// debugger;
var ret = true;
if (Ext.isIE) {
return;
}
var size = 0;
var names = '';
for (var num1 = 0; num1 < el.files.length; num1++) {
var file = el.files[num1];
names += file.name + '\r\n';
//alert(file.name+" "+file.type+" "+file.size);
size += file.size;
}
var txt = '';
var fileSize = Ext.util.Format.fileSize(size);
if (size > 31457280) {
txt = Ext.String.format('You are trying to upload {0}. Max. allowed upload size is 30 MB', fileSize);
ret = false;
} else {
txt = Ext.String.format('{0} file(s) of total size {1}', el.files.length, fileSize);
}
label.setText(txt);
return ret;
}
var SetMultipleUpload = function (fileupload, label) {
fileupload.fileInputEl.set({ multiple: 'multiple' });
if (Ext.isIE) {
label.setText('IE does not support multiple file upload, to use this feature use Firefox or Chrome');
}
}
</script>
<title></title>
</head>
<body>
<ext:ResourceManager ID="ResourceManager1" runat="server" />
<form id="form1" runat="server">
<ext:Window ID="MainWindow" runat="server" Height="260" Width="390" Layout="FitLayout"
Collapsible="true" Title="Upload files">
<Items>
<ext:FormPanel ID="BasicForm" runat="server" Frame="true" MonitorValid="true" DefaultAnchor="100%">
<Items>
<ext:FileUploadField ID="FileUploadField1" runat="server" ButtonText="Add Files"
Icon="Add" ButtonOnly="true" AllowBlank="false">
<Listeners>
<Render Handler="SetMultipleUpload( this, #{UpdateLabel}) ;" />
<Change Handler="if(!UpdateUploadInfo(this.fileInputEl.dom, #{UpdateLabel})) {this.reset();SetMultipleUpload( this, #{UpdateLabel})}" />
</Listeners>
</ext:FileUploadField>
<ext:Label ID="UpdateLabel" runat="server">
</ext:Label>
</Items>
<Listeners>
<ValidityChange Handler="#{SaveButton}.setDisabled(!valid);" />
</Listeners>
<Buttons>
<ext:Button ID="SaveButton" runat="server" Text="Save">
<DirectEvents>
<Click OnEvent="UploadClick">
<EventMask ShowMask="true" />
</Click>
</DirectEvents>
</ext:Button>
<ext:Button ID="Button2" runat="server" Text="Reset">
<Listeners>
<Click Handler="#{BasicForm}.getForm().reset(); SetMultipleUpload( #{FileUploadField1}, #{UpdateLabel});#{UpdateLabel}.setText('');" />
</Listeners>
</ext:Button>
</Buttons>
</ext:FormPanel>
</Items>
<Listeners>
<Hide Handler="#{BasicForm}.getForm().reset(); SetMultipleUpload( #{FileUploadField1}, #{UpdateLabel});#{UpdateLabel}.setText('');" />
</Listeners>
</ext:Window>
</form>
</body>
</html>