Penanganan upload file seperti di MVC pada webform / devexpress:
- Semua file disimpan di folder /Uploads/
- File diberikan penanda unik dengan GUID
[code language=”html”]
<dx:LayoutItem Caption="E-corr*" FieldName="attachment" ColSpan="2">
<LayoutItemNestedControlCollection>
<dx:LayoutItemNestedControlContainer ID="LayoutItemNestedControlContainer8" runat="server" SupportsDisabledAttribute="True">
<dx:ASPxUploadControl Theme="Metropolis" ID="UploadECorr" Width="20%" ClientInstanceName="UploadECorr"
runat="server" UploadMode="Standard" ClientVisible="true" OnFileUploadComplete="UploadECorr_FileUploadComplete">
<AdvancedModeSettings EnableMultiSelect="false" />
<ValidationSettings MaxFileSize="10485760"></ValidationSettings>
<ClientSideEvents FilesUploadComplete="onUploadControlFileUploadComplete" />
</dx:ASPxUploadControl>
</dx:LayoutItemNestedControlContainer>
</LayoutItemNestedControlCollection>
</dx:LayoutItem>
[/code]
[code language=”csharp”]
protected void UploadECorr_FileUploadComplete(object sender, DevExpress.Web.ASPxUploadControl.FileUploadCompleteEventArgs e)
{
string uploadFolder = Server.MapPath("~/Uploads/");
string fileName = e.UploadedFile.FileName;
var identifier = Guid.NewGuid();
string plainFileName = Path.GetFileNameWithoutExtension(fileName);
string friendlyFilename = new DisplayFormatHelper().URLFriendly(plainFileName) + Path.GetExtension(fileName);
string uniqueFileName = identifier + "_" + friendlyFilename;
e.UploadedFile.SaveAs(uploadFolder + uniqueFileName);
e.CallbackData = uniqueFileName;
Session["ECorrFileName"] = uniqueFileName;
}
private mitra_invite_meeting SaveData(int id)
{
//…
if (Session["ECorrFileName"] != null)
{
mim.attachment = "~/Uploads/" + Session["ECorrFileName"] as string;
Session["ECorrFileName"] = null;
}
//…
}
[/code]