Home Support Site Search Faq Register Login  
FileUp
Re: me.context on a control

Thread Starter: sconard   Started: 05-11-2005 2:13 PM   Replies: 19
  11 May 2005, 2:13 PM
sconard is not online. Last active: 5/29/2013 11:36:10 AM sconard

Top 10 Posts
Joined on 01-11-2005
Posts 53
me.context on a control

I am trying to use xfile in a custom module in dot net nuke.  The control (ascx) I am creating uses example code in the code behind.  The fileup object is created via

Dim oFileUp As New FileUp(Me.Context)

This creates an error that has no trace.  The project has saFileUp.dll as a reference and imports SoftArtisans.Net.

The cryptic error is "A critical error has occured"



  
  12 May 2005, 1:42 PM
Debbie is not online. Last active: 2/18/2007 6:20:31 PM Debbie

Top 10 Posts
Joined on 12-16-2004
Posts 460

SoftArtisans Technical Services

Support team
Re: me.context on a control

Hello,

I know nothing at all about ascx pages, but since no one has offered any suggestions, this is what I'm thinking....


In an aspx page, you would instantiate FileUp like so:

Dim oFileUp As New FileUp(Context)


Notice the lack of "me"....

Is "me" correct? The context is the Request/Response...are you making a direct request for the ascx page, or are you making a request to an aspx page that treats the ascx page as an "include" - perhaps the context needs to be passed in a different way?

If you figure this out, I would love to hear the answer to this. If I can make the time, I will try to learn how to use FileUp in this manner, but it may not be timely enough for your current problem.

Any other users out there with experience with this?


  
  12 May 2005, 2:23 PM
sconard is not online. Last active: 5/29/2013 11:36:10 AM sconard

Top 10 Posts
Joined on 01-11-2005
Posts 53
Re: me.context on a control
I have tried many ways to represent the context but all fail with the same message.

Some of the failing attempts:

    Public _pageContext As System.Web.HttpContext

    Public ReadOnly Property pageContext() As System.Web.HttpContext
      Get
        If pageContext Is Nothing Then
          _pageContext = System.Web.HttpContext.Current
        End If
        Return _pageContext
      End Get
    End Property

    Dim oFileUp As New FileUp(pageContext)
---------------------------------------------------------
and
---------------------------------------------------------
Dim oFileUp As New FileUp(system.web.httpcontext.current)
---------------------------------------------------------
and
---------------------------------------------------------
Dim oFileUp As New FileUp(context)
---------------------------------------------------------
and
---------------------------------------------------------
Dim oFileUp As New FileUp(parent.context)
---------------------------------------------------------
etc.

I thought maybe the following article may hold the key but it is not a component, it is a control.

http://support.softartisans.com/kbview.aspx?ID=13

Really stuck.


 

  
  16 May 2005, 10:08 AM
Debbie is not online. Last active: 2/18/2007 6:20:31 PM Debbie

Top 10 Posts
Joined on 12-16-2004
Posts 460

SoftArtisans Technical Services

Support team
Re: me.context on a control
.... and you've checked the basics already, I assume - FileUp is correctly installed, for example? If you run one of our simple ASP upload samples, it will work without error, etc? These conditions would all give different error messages, but perhaps because of the ascx environment, you are getting the (not too helpful) "critical error" ...

  
  17 May 2005, 9:02 AM
sconard is not online. Last active: 5/29/2013 11:36:10 AM sconard

Top 10 Posts
Joined on 01-11-2005
Posts 53
Re: me.context on a control
Samples function fine
  
  19 May 2005, 1:31 PM
Debbie is not online. Last active: 2/18/2007 6:20:31 PM Debbie

Top 10 Posts
Joined on 12-16-2004
Posts 460

SoftArtisans Technical Services

Support team
Re: me.context on a control
Hey Steve,
I set up a project today, but didn't get to finish it, as I've been working on priority support issues. Hopefully tomorrow, but this doesn't look too complicated. I'm thinking, can you copy your ascx code into your calling aspx page and have it work OK? Just wanted to send a troubleshooting suggestion out there so that you don't feel completely ignored.

-Debbie

  
  23 May 2005, 12:03 PM
Debbie is not online. Last active: 2/18/2007 6:20:31 PM Debbie

Top 10 Posts
Joined on 12-16-2004
Posts 460

SoftArtisans Technical Services

Support team
Re: me.context on a control

Hi Steve,
   I set up a project to use FileUp in an ascx control. Seems to work fine, but I instantiate FileUp like this:

Dim oFileUp As New FileUp(Context)

I've created a project that is vb.net. It uses the httpModule, so please pay attention to the web.config and file extensions.

Below follows my project code: (It'll probably wrap funny, so it might be easier to read if you copy each page into vs.net)

(FileUp and the FileUp module dlls are in my bin directory of my application, which is named FileUpUserControl)

1. web.config file (needs to explain  module use to your app)
2. FileUpWebUserControl.ascx (contains the form)
3. FileUpWebUserControl.ascx.vb (contains the FileUp code)
4. ParentForm.uplx (registers the user control and has appropriate extension for HttpModule)
5. ParentForm.uplx.vb (does nothing and isn't included)

 


===================
1. Web.config
===================

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
   <system.web>
   <!--
        httpRuntime Attributes:
          executionTimeout="[seconds]" - time in seconds before request is automatically timed out
          maxRequestLength="[KBytes]" - KBytes size of maximum request length to accept
          useFullyQualifiedRedirectUrl="[true|false]" - Fully qualifiy the URL for client redirects
          minFreeThreads="[count]" - minimum number of free thread to allow execution of new requests
          minLocalRequestFreeThreads="[count]" - minimum number of free thread to allow execution of new local requests
          appRequestQueueLimit="[count]" - maximum number of requests queued for the application
        -->
    <!-- SoftArtisans FileUp:
         executionTimeout value defaults to '90', but should be increased for large uploads
         maxRequestLength this value defaults to '4096', but should be increased for uploads of many files -->
    <httpRuntime
     executionTimeout="1200"
     maxRequestLength="102400"
     useFullyQualifiedRedirectUrl="false"
     minFreeThreads="8"
     minLocalRequestFreeThreads="4"
     appRequestQueueLimit="100" />
    <httpModules>
 <add name="FileUpModule" type="SoftArtisans.Net.FileUpModule, FileUpModule, Version=5.0.5.517, Culture=neutral, PublicKeyToken=f593502af6ee46ae"/>
    </httpModules>
    <httpHandlers>
 <add verb="*" path="*.uplx" type="System.Web.UI.PageHandlerFactory"/>
    </httpHandlers>
    </system.web>
</configuration> 

===================
2.FileUpWebUserControl.ascx
===================

<%@ Control Language="vb" AutoEventWireup="false" Codebehind="FileUpWebUserControl.ascx.vb" Inherits="FileUpUserControl.FileUpWebUserControl" TargetSchema="http://schemas.microsoft.com/intellisense/ie5" %>
<!-- Note: For any form uploading a file, the ENCTYPE="multipart/form-data" and
METHOD="POST" attributes MUST be present -->
<FORM id="theForm" runat="server" ENCTYPE="multipart/form-data" METHOD="post">
 <TABLE WIDTH="600" align="center">
  <TR>
   <TD ALIGN="right" VALIGN="top">Enter Filename:</TD>
   <!-- Note: Notice this form element is of TYPE="FILE"-->
   <TD ALIGN="left">
    <INPUT TYPE="file" NAME="myFile"><BR>
    <I>Click "Browse" to select a file to upload</I>
   </TD>
  </TR>
  <TR>
   <TD ALIGN="right">&nbsp;</TD>
   <TD ALIGN="left"><INPUT TYPE="button" id="UploadBtn" runat="server" OnServerClick="UploadBtn_Click" VALUE="Upload File"
     NAME="UploadBtn"></TD>
  </TR>
  <TR>
   <TD colspan="2">
    <HR noshade>
    <B>Note:</B> This sample demonstrates how to perform a simple single file
    upload with FileUp
   </TD>
  </TR>
 </TABLE>
</FORM>
<ASP:LITERAL id="ltrUploadResults" runat="Server" />
===================
3. FileUpWebUserControl.ascx.vb
===================

Imports System
Imports SoftArtisans.Net
Public Class FileUpWebUserControl
    Inherits System.Web.UI.UserControl

#Region " Web Form Designer Generated Code "

    'This call is required by the Web Form Designer.
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()

    End Sub
    Protected WithEvents UploadBtn As System.Web.UI.HtmlControls.HtmlInputButton

    'NOTE: The following placeholder declaration is required by the Web Form Designer.
    'Do not delete or move it.
    Private designerPlaceholderDeclaration As System.Object

    Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
        'CODEGEN: This method call is required by the Web Form Designer
        'Do not modify it using the code editor.
        InitializeComponent()
    End Sub

#End Region

    '--- Declare controls used on the webform
    Protected theForm As System.Web.UI.HtmlControls.HtmlForm
    Protected ltrUploadResults As System.Web.UI.WebControls.Literal


    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        ' Put user code to initialize the page here

    End Sub
    Protected Sub UploadBtn_Click(ByVal sender As Object, ByVal e As EventArgs)
        '--- Hide the form when the upload button is clicked
        theForm.Visible = False
        ProcessUpload()

    End Sub

    Private Sub ProcessUpload()

        '--- Instantiate the FileUp object
        Dim oFileUp As New FileUp(Context)

        '--- This StringBuilder will be used to display results
        Dim results As New System.Text.StringBuilder

        Try

            '--- Set the Path property to the location you wish to
            '--- temporarily cache the incoming file before saving
            '--- Note: This property must be set immediately after
            '--- instantiating the FileUp object
            oFileUp.Path = "C:\Save Here"

            '--- Check to be sure there was a file selected in the form
            '--- If so, continue processing

            '--- Get a reference to the uploaded file field
            Dim oFile As SaFile = CType(oFileUp.Form("myFile"), SaFile)

            If Not (oFile Is Nothing) Then
                If Not (oFile.IsEmpty) Then

                    '--- Save the file
                    '--- Note: The Save() method saves the file
                    '--- with its original name to the directory
                    '--- you set as the Path property.
                    '--- To save a file to a different location
                    '--- or with a different name, use the SaveAs() method
                    '--- instead of Save()
                    oFile.Save()

                    '--- Display information about the saved file
                    results.Append("<H3>FileUp Saved the File Successfully</H3>")
                    results.Append("<DL>")

                    '--- ServerName is the full path of the file as it was saved on the server
                    results.Append("<DT><B>Path on server</B></DT><DD>" + oFile.ServerName + "</DD>")
                    '--- UserFilename is the full path of the file as it was sent from the client
                    results.Append("<DT><B>Path on client</B></DT><DD>" + oFile.UserFilename + "</DD>")
                    '--- ShortFileName is just the Userfilename without the path
                    results.Append("<DT><B>Short filename</B></DT><DD>" + oFile.ShortFilename + "</DD>")
                    '--- TotalBytes is the byte size of the file
                    results.Append("<DT><B>Byte size</B></DT><DD>" + oFile.TotalBytes.ToString() + "</DD>")
                    '--- ContentType is the mime type of the file. Eg, "application/msword"
                    results.Append("<DT><B>Content type</B></DT><DD>" + oFile.ContentType + "</DD>")
                    '--- CheckSum is the MD5 hash of the file that can be used to check file integrity
                    results.Append("<DT><B>CheckSum</B></DT><DD>" + oFile.Checksum + "</DD>")
                    results.Append("</DL>")

                Else
                    '--- If SaFile.IsEmpty is true, the file field was left empty
                    results.Append("There was no file submitted in the form field.")
                End If
            Else
                results.Append("The referenced field does not exist or is not of type=""file""")
            End If

            '--- Display the results on the webform
            ltrUploadResults.Text = results.ToString()

        Catch ex As System.Exception
            '--- If an exception is caught, display the details
            ltrUploadResults.Text = "<b>An error has occurred:</b><br>" + _
                   ex.Message
        Finally
            '--- Always call FileUp.Dispose in the finally block
            If Not (oFileUp Is Nothing) Then
                oFileUp.Dispose()
            End If
            oFileUp = Nothing
        End Try

    End Sub

End Class

===================
4. ParentForm.uplx
===================

<%@ Page Language="vb" AutoEventWireup="false" Codebehind="ParentForm.uplx.vb" %>
<%@ Register tagprefix="FileUpCode" tagname="UploadForm" src="FileUpWebUserControl.ascx" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
 <HEAD>
  <TITLE>WebForm1</TITLE>
  <META name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
  <META name="CODE_LANGUAGE" content="Visual Basic .NET 7.1">
  <META name="vs_defaultClientScript" content="JavaScript">
  <META name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
 </HEAD>
 <BODY MS_POSITIONING="GridLayout">
  <FileUpCode:UploadForm runat="server" />
 </BODY>
</HTML>

===================
End code
===================

Hope this helps.
-Debbie


  
  15 Jun 2005, 4:00 PM
sconard is not online. Last active: 5/29/2013 11:36:10 AM sconard

Top 10 Posts
Joined on 01-11-2005
Posts 53
Re: me.context on a control
I have been able to make this example function in a dotnetnuke custom control but this does not help.  Unfortunately the problem (I think) is caused by the fact that the control I am writing cannot be made to Inherit System.Web.UI.UserControl.  It must Inherit DotNetNuke.Entities.Modules.PortalModuleBase which (I think) throws the error when referencing the context in instantiating the object.  In addition the example uses an html file input.  I am attempting to use the xfile control which the enumerator does not find in the above test example.
  
  20 Jun 2005, 4:45 PM
Debbie is not online. Last active: 2/18/2007 6:20:31 PM Debbie

Top 10 Posts
Joined on 12-16-2004
Posts 460

SoftArtisans Technical Services

Support team
Re: me.context on a control
Well, this probably isn't too helpful, but if you were to ever get past the FileUp instantiation problem, we have a .net code sample that uses XFile (http://support.softartisans.com/kbview.aspx?ID=897) - you could swap out the FileUp related code with this code.

Before we moved to the forums system, I'm pretty sure we've encountered other DotNetNuke + FileUp users - unfortunately, I can't track down any of these  previous conversations, so maybe this happened over the phone. I'm sure you've already considered this, but perhaps DotNetNuke has a user forum where this post could be cross-referenced. I suspect there are other DotNetNuke developers out there who have bumped into this already.

  
  21 Jun 2005, 7:17 AM
sconard is not online. Last active: 5/29/2013 11:36:10 AM sconard

Top 10 Posts
Joined on 01-11-2005
Posts 53
Re: me.context on a control

Thank you for your response
The example you site is the one I pulled code from for my testing. 
I can instantiate the object but on postback the saFile is never found in the iterator loop.  All other form objects are found in the iterator loop.  In other words the following is never true:
If TypeOf oFileUp.Form(iterator.Current) Is SaFile Then

__________view source

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
 <HEAD id="Head">
  <TITLE>
   File Manager
  </TITLE>
  <!--*************************************************************************************************************************************************************************-->
<!-- DotNetNuke - http://www.dotnetnuke.com                                                                                                                                  -->
<!-- Copyright (c) 2002-2005                                                                                                                                                -->
<!-- Shaun Walker - Perpetual Motion Interactive Systems Inc.                                                                                                                -->
<!-- http://www.perpetualmotion.ca                                                                                                                                           -->
<!-- ales@perpetualmotion.ca" href="sales@perpetualmotion.ca'>mailtoales@perpetualmotion.ca">sales@perpetualmotion.ca                                                                                                                                                -->
<!--*************************************************************************************************************************************************************************-->

  <META NAME="DESCRIPTION" CONTENT="File Manager">
  <META NAME="KEYWORDS" CONTENT="File Manager,DotNetNuke,DNN">
  <META NAME="COPYRIGHT" CONTENT="Copyright 2002-2005 DotNetNuke">
  <META NAME="GENERATOR" CONTENT="DotNetNuke 3.0.13">
  <META NAME="AUTHOR" CONTENT="DotNetNuke Default Portal">
  <META NAME="RESOURCE-TYPE" CONTENT="DOCUMENT">
  <META NAME="DISTRIBUTION" CONTENT="GLOBAL">
  <META NAME="ROBOTS" CONTENT="INDEX, FOLLOW">
  <META NAME="REVISIT-AFTER" CONTENT="1 DAYS">
  <META NAME="RATING" CONTENT="GENERAL">
  <META HTTP-EQUIV="PAGE-ENTER" CONTENT="RevealTrans(Duration=0,Transition=1)">
  <style id="StylePlaceholder"></style>
  <LINK id="_sPort_Portals__default_" rel="stylesheet" type="text/css" href="/sPort/Portals/_default/default.css"></LINK><LINK id="_sPort_Portals__default_Skins_DNN_Blue_" rel="stylesheet" type="text/css" href="/sPort/Portals/_default/Skins/DNN-Blue/skin.css"></LINK><LINK id="_sPort_Portals__default_Containers_DNN_Blue_" rel="stylesheet" type="text/css" href="/sPort/Portals/_default/Containers/DNN-Blue/container.css"></LINK><LINK id="_sPort_Portals_0_" rel="stylesheet" type="text/css" href="/sPort/Portals/0/portal.css"></LINK>
 
  <script src="/sport/js/dnncore.js"></script>
 </HEAD>
 <BODY id="Body" ONSCROLL="__dnn_bodyscroll()" BOTTOMMARGIN="0" LEFTMARGIN="0" TOPMARGIN="0" RIGHTMARGIN="0" MARGINWIDTH="0" MARGINHEIGHT="0">
  <noscript></noscript>
  <form name="Form" method="post" enctype="multipart/form-data" style="height:100%;" action="/sPort/FileManager/tabid/52/ctl/Edit/mid/364/ftype/File/Default.aspx" id="Form">
<input type="hidden" name="__EVENTTARGET" value="" />
<input type="hidden" name="__EVENTARGUMENT" value="" />


<script language="javascript">
<!--
 function __doPostBack(eventTarget, eventArgument) {
  var theform;
  if (window.navigator.appName.toLowerCase().indexOf("netscape") > -1) {
   theform = document.forms["Form"];
  }
  else {
   theform = document.Form;
  }
  theform.__EVENTTARGET.value = eventTarget.split("$").join(":");
  theform.__EVENTARGUMENT.value = eventArgument;
  theform.submit();
 }
// -->
</script>

<!-- Solution Partner's ASP.NET Hierarchical Menu (v1.4.0.1) - http://www.solpart.com -->
<SCRIPT SRC="/sPort/controls/SolpartMenu/spmenu.js"></SCRIPT>

 <SPAN ID="dnn_dnnMENU_ctlMenu_divOuterTables"></SPAN>

 <SPAN ID="dnn_ctr364_dnnACTIONS_ctlActions_divOuterTables"></SPAN>


  
  
<TABLE class="pagemaster" border="0" cellspacing="0" cellpadding="0">
<TR>
<TD valign="top">
<TABLE class="skinmaster" width="770" border="0" align="center" cellspacing="0" cellpadding="0">
<TR>
<TD id="dnn_ControlPanel" class="contentpane" valign="top" align="center">
<table class="ControlPanel" cellspacing="0" cellpadding="0" border="0">
 <tr>
  <td>
   <table cellspacing="0" cellpadding="2" width="100%">
    <tr>
     <td align="center" class="SubHead"><span id="dnn_IconBar.ascx_lblPageFunctions" class="SubHead">Page Functions</span></td>
     <td rowspan="2" align="center" width="1"><div class="ControlPanel"></div></td>
     <td align="center" class="SubHead">
                        <span id="dnn_IconBar.ascx_optModuleType" class="SubHead"><input id="dnn_IconBar.ascx_optModuleType_0" type="radio" name="dnn:IconBar.ascxptModuleType" value="0" checked="checked" onclick="__doPostBack('dnn_IconBar.ascx_optModuleType_0','')" language="javascript" /><label for="dnn_IconBar.ascx_optModuleType_0">Add New Module</label><input id="dnn_IconBar.ascx_optModuleType_1" type="radio" name="dnn:IconBar.ascxptModuleType" value="1" onclick="__doPostBack('dnn_IconBar.ascx_optModuleType_1','')" language="javascript" /><label for="dnn_IconBar.ascx_optModuleType_1">Add Existing Module</label></span>
                    </td>
     <td rowspan="2" align="center" width="1"><div class="ControlPanel"></div></td>
     <td align="center" class="SubHead"><span id="dnn_IconBar.ascx_lblCommonTasks" class="SubHead">Common Tasks</span></td>
    </tr>
    <tr>
     <td align="center" valign="top">
      <table cellspacing="0" cellpadding="2" border="0">
       <tr valign="bottom" height="24">
        <td width="35" align="center"><a id="dnn_IconBar.ascx_cmdAddTabIcon" class="CommandButton" href=__doPostBack('dnn$IconBar.ascx$cmdAddTabIcon','')"><img id="dnn_IconBar.ascx_imgAddTabIcon" src="/sPort/admin/ControlPanel/images/iconbar_addtab.gif" alt="Add New Page" border="0" /></a></td>
        <td width="35" align="center"><a id="dnn_IconBar.ascx_cmdEditTabIcon" class="CommandButton" href=__doPostBack('dnn$IconBar.ascx$cmdEditTabIcon','')"><img id="dnn_IconBar.ascx_imgEditTabIcon" src="/sPort/admin/ControlPanel/images/iconbar_edittab.gif" alt="Current Page Settings" border="0" /></a></td>
        <td width="35" align="center"><a id="dnn_IconBar.ascx_cmdDeleteTabIcon" class="CommandButton" onClick=return confirm('Are You Sure You Wish To Delete This Page?');" href=__doPostBack('dnn$IconBar.ascx$cmdDeleteTabIcon','')"><img id="dnn_IconBar.ascx_imgDeleteTabIcon" src="/sPort/admin/ControlPanel/images/iconbar_deletetab.gif" alt="Delete Current Page" border="0" /></a></td>
        <td width="35" align="center"><a id="dnn_IconBar.ascx_cmdCopyTabIcon" class="CommandButton" href=__doPostBack('dnn$IconBar.ascx$cmdCopyTabIcon','')"><img id="dnn_IconBar.ascx_imgCopyTabIcon" src="/sPort/admin/ControlPanel/images/iconbar_copytab.gif" alt="Copy Current Page" border="0" /></a></td>
        <td width="35" align="center"><a id="dnn_IconBar.ascx_cmdPreviewTabIcon" class="CommandButton" href=__doPostBack('dnn$IconBar.ascx$cmdPreviewTabIcon','')"><img id="dnn_IconBar.ascx_imgPreviewTabIcon" src="/sPort/admin/ControlPanel/images/iconbar_previewtab.gif" alt="Preview Current Page" border="0" /></a></td>
       </tr>
       <tr valign="bottom">
        <td width="35" align="center" class="Normal"><a id="dnn_IconBar.ascx_cmdAddTab" class="CommandButton" href=__doPostBack('dnn$IconBar.ascx$cmdAddTab','')">Add</a></td>
        <td width="35" align="center" class="Normal"><a id="dnn_IconBar.ascx_cmdEditTab" class="CommandButton" href=__doPostBack('dnn$IconBar.ascx$cmdEditTab','')">Settings</a></td>
        <td width="35" align="center" class="Normal"><a id="dnn_IconBar.ascx_cmdDeleteTab" class="CommandButton" onClick=return confirm('Are You Sure You Wish To Delete This Page?');" href=__doPostBack('dnn$IconBar.ascx$cmdDeleteTab','')">Delete</a></td>
        <td width="35" align="center" class="Normal"><a id="dnn_IconBar.ascx_cmdCopyTab" class="CommandButton" href=__doPostBack('dnn$IconBar.ascx$cmdCopyTab','')">Copy</a></td>
        <td width="35" align="center" class="Normal"><a id="dnn_IconBar.ascx_cmdPreviewTab" class="CommandButton" href=__doPostBack('dnn$IconBar.ascx$cmdPreviewTab','')">Preview</a></td>
       </tr>
      </table>
     </td>
     <td align="center" valign="top" height="100%">
      <table cellspacing="1" cellpadding="0" border="0" height="100%">
       <tr>
        <td align="center">
         <table cellspacing="1" cellpadding="0" border="0" height="100%">
          <tr valign="bottom">
           <td class="SubHead" align="right" nowrap><span id="dnn_IconBar.ascx_lblModule" class="SubHead">Module:</span>&nbsp;</td>
           <td nowrap><select name="dnn:IconBar.ascx:cboDesktopModules" id="dnn_IconBar.ascx_cboDesktopModules" class="NormalTextBox" style="width:140px;">
 <option value="-1">&lt;Select A Module&gt;</option>
 <option value="32">Account Login</option>
 <option value="49">Announcements</option>
 <option value="15">Banners</option>
 <option value="50">Contacts</option>
 <option value="51">Discussions</option>
 <option value="52">Documents</option>
 <option value="53">Events</option>
 <option value="54">FAQs</option>
 <option value="55">Feedback</option>
 <option value="56">IFrame</option>
 <option value="57">Image</option>
 <option value="58">Links</option>
 <option value="59">News Feeds (RSS)</option>
 <option value="44">Search Input</option>
 <option value="45">Search Results</option>
 <option value="60">Text/HTML</option>
 <option value="33">User Account</option>
 <option value="61">User Defined Table</option>
 <option value="63">Wrallp.fileManager</option>
 <option value="62">XML/XSL</option>

</select>&nbsp;&nbsp;</td>
           <td class="SubHead" align="right" nowrap><span id="dnn_IconBar.ascx_lblPane" class="SubHead">Pane:</span>&nbsp;</td>
           <td nowrap><select name="dnn:IconBar.ascx:cboPanes" id="dnn_IconBar.ascx_cboPanes" class="NormalTextBox" style="width:110px;">
 <option selected="selected" value="ContentPane">ContentPane</option>

</select>&nbsp;&nbsp;</td>
           <td align="center" nowrap><a id="dnn_IconBar.ascx_cmdAddModuleIcon" disabled="disabled" class="CommandButton"><img id="dnn_IconBar.ascx_imgAddModuleIcon" src="/sPort/Admin/ControlPanel/images/iconbar_addmodule_bw.gif" alt="Add New Module" border="0" /></a></td>
          </tr>
          <tr valign="bottom">
           <td class="SubHead" align="right" nowrap><span id="dnn_IconBar.ascx_lblTitle" class="SubHead">Title:</span>&nbsp;</td>
           <td nowrap><input name="dnn:IconBar.ascx:txtTitle" type="text" id="dnn_IconBar.ascx_txtTitle" class="NormalTextBox" style="width:140px;" />&nbsp;&nbsp;</td>
           <td class="SubHead" align="right" nowrap><span id="dnn_IconBar.ascx_lblPosition" class="SubHead">Insert:</span>&nbsp;</td>
           <td nowrap>
            <select name="dnn:IconBar.ascx:cboPosition" id="dnn_IconBar.ascx_cboPosition" class="NormalTextBox" style="width:110px;">
 <option value="0">Top</option>
 <option selected="selected" value="-1">Bottom</option>

</select>&nbsp;&nbsp;
           </td>
           <td align="center" class="Normal" nowrap><a id="dnn_IconBar.ascx_cmdAddModule" disabled="disabled" class="CommandButton">Add</a></td>
          </tr>
          <tr valign="bottom">
           <td class="SubHead" align="right" nowrap><span id="dnn_IconBar.ascx_lblPermission" class="SubHead">Visibility:</span>&nbsp;</td>
           <td nowrap>
            <select name="dnn:IconBar.ascx:cboPermission" id="dnn_IconBar.ascx_cboPermission" class="NormalTextBox" style="width:140px;">
 <option selected="selected" value="0">Same As Page</option>
 <option value="1">Page Editors Only</option>

</select>&nbsp;&nbsp;
           </td>
           <td class="SubHead" align="right" nowrap><span id="dnn_IconBar.ascx_lblAlign" class="SubHead">Align:</span>&nbsp;</td>
           <td nowrap>
            <select name="dnn:IconBar.ascx:cboAlign" id="dnn_IconBar.ascx_cboAlign" class="NormalTextBox" style="width:110px;">
 <option selected="selected" value="left">Left</option>
 <option value="center">Center</option>
 <option value="right">Right</option>

</select>&nbsp;&nbsp;
           </td>
           <td align="center" nowrap>&nbsp;</td>
          </tr>
         </table>
        </td>
       </tr>
      </table>
     </td>
     <td align="center" valign="top">
      <table cellspacing="0" cellpadding="2" border="0">
       <tr valign="bottom" height="24">
        <td width="35" align="center"><a id="dnn_IconBar.ascx_cmdWizardIcon" class="CommandButton" href=__doPostBack('dnn$IconBar.ascx$cmdWizardIcon','')"><img id="dnn_IconBar.ascx_imgWizardIcon" src="/sPort/admin/ControlPanel/images/iconbar_wizard.gif" alt="Build Site Wizard" border="0" /></a></td>
        <td width="35" align="center"><a id="dnn_IconBar.ascx_cmdSiteIcon" class="CommandButton" href=__doPostBack('dnn$IconBar.ascx$cmdSiteIcon','')"><img id="dnn_IconBar.ascx_imgSiteIcon" src="/sPort/admin/ControlPanel/images/iconbar_site.gif" alt="Edit Site Settings" border="0" /></a></td>
        <td width="35" align="center"><a id="dnn_IconBar.ascx_cmdUsersIcon" class="CommandButton" href=__doPostBack('dnn$IconBar.ascx$cmdUsersIcon','')"><img id="dnn_IconBar.ascx_imgUsersIcon" src="/sPort/admin/ControlPanel/images/iconbar_users.gif" alt="Add New User" border="0" /></a></td>
        <td width="35" align="center"><a id="dnn_IconBar.ascx_cmdFilesIcon" class="CommandButton" href=__doPostBack('dnn$IconBar.ascx$cmdFilesIcon','')"><img id="dnn_IconBar.ascx_imgFilesIcon" src="/sPort/admin/ControlPanel/images/iconbar_files.gif" alt="Add New File" border="0" /></a></td>
        <td width="35" align="center"><a id="dnn_IconBar.ascx_cmdHelpIcon" class="CommandButton" CausesValidation="False" href="http://www.dotnetnuke.com/default.aspx?tabid=787&amp;helpculture=en-us" target="_new"><img id="dnn_IconBar.ascx_imgHelpIcon" src="/sPort/admin/ControlPanel/images/iconbar_help.gif" alt="Help" border="0" /></a></td>
       </tr>
       <tr valign="bottom">
        <td width="35" align="center" class="Normal"><a id="dnn_IconBar.ascx_cmdWizard" class="CommandButton" href=__doPostBack('dnn$IconBar.ascx$cmdWizard','')">Wizard</a></td>
        <td width="35" align="center" class="Normal"><a id="dnn_IconBar.ascx_cmdSite" class="CommandButton" href=__doPostBack('dnn$IconBar.ascx$cmdSite','')">Site</a></td>
        <td width="35" align="center" class="Normal"><a id="dnn_IconBar.ascx_cmdUsers" class="CommandButton" href=__doPostBack('dnn$IconBar.ascx$cmdUsers','')">Users</a></td>
        <td width="35" align="center" class="Normal"><a id="dnn_IconBar.ascx_cmdFiles" class="CommandButton" href=__doPostBack('dnn$IconBar.ascx$cmdFiles','')">Files</a></td>
        <td width="35" align="center" class="Normal"><a id="dnn_IconBar.ascx_cmdHelp" class="CommandButton" CausesValidation="False" href="http://www.dotnetnuke.com/default.aspx?tabid=787&amp;helpculture=en-us" target="_new">Help</a></td>
       </tr>
      </table>
     </td>
    </tr>
   </table>
  </td>
 </tr>
</table>
</TD>

</TR>
<TR>
<TD valign="top">
<TABLE class="skinheader" cellSpacing="0" cellPadding="3" width="100%" border="0">
  <TR>
    <TD vAlign="middle" align="left"><a id="dnn_dnnLOGO_hypLogo" title="DotNetNuke Default Portal" href="http://localhost/sPort"><img id="dnn_dnnLOGO_imgLogo" src="/sPort/Portals/0/dnnlogo.gif" alt="DotNetNuke Default Portal" style="border-width:0px;" /></a></TD>
    <TD vAlign="middle" align="right"></TD>
  </TR>
</TABLE>
<TABLE class="skingradient" cellSpacing="0" cellPadding="3" width="100%" border="0">
  <TR>
    <TD width="100%" vAlign="middle" align="left" nowrap><span id="dnn_dnnMENU_ctlMenu" name="dnnnnMENU:ctlMenu" BackColor="#333333" IconBackgroundColor="#333333" HlColor="#FF8080" ShColor="#404040" SelForeColor="White" SelColor="#CCCCCC" FontStyle="font-family: Tahoma, Arial, Helvetica; font-size: 9pt; font-weight: bold; font-style: normal; text-decoration: " SysImgPath="/sPort/images/" Display="horizontal" MenuBarHeight="16" MenuItemHeight="21" IconWidth="15" MOutDelay="500" MenuTransition="None" BorderWidth="0" IconImgPath="/sPort/Portals/0/" ArrowImage="breadcrumb.gif" RootArrowImage="menu_down.gif" RootArrow="-1" CSSMenuArrow="MainMenu_MenuArrow" CSSMenuBreak="MainMenu_MenuBreak" CSSMenuContainer="MainMenu_MenuContainer" CSSMenuBar="MainMenu_MenuBar" CSSSubMenu="MainMenu_SubMenu" CSSMenuIcon="MainMenu_MenuIcon" CSSMenuItem="MainMenu_MenuItem" CSSMenuItemSel="MainMenu_MenuItemSel" CSSRootMenuArw="MainMenu_RootMenuArrow" SupportsTrans="1"><xml id="SolpartMenuDI" onreadystatechange="if (this.readyState == 'complete') spm_initMyMenu(this, spm_getById('dnn_dnnMENU_ctlMenu'))"><root><menuitem id="36" title="Home" url="http://localhost/sPort/Home/tabid/36/Default.aspx" /><menuitem id="52" title="File Manager" url="http://localhost/sPort/FileManager/tabid/52/Default.aspx" lefthtml="&lt;img alt=&quot;*&quot; BORDER=&quot;0&quot; src=&quot;/sPort/images/breadcrumb.gif&quot;&gt;" /><menuitem id="38" title="Admin"><menuitem id="39" title="&amp;nbsp;Site Settings" url="http://localhost/sPort/Admin/SiteSettings/tabid/39/Default.aspx" image="icon_sitesettings_16px.gif" imagepath="/sPort/images/" /><menuitem id="40" title="&amp;nbsp;Pages" url="http://localhost/sPort/Admin/Tabs/tabid/40/Default.aspx" image="icon_tabs_16px.gif" imagepath="/sPort/images/" /><menuitem id="41" title="&amp;nbsp;Security Roles" url="http://localhost/sPort/Admin/SecurityRoles/tabid/41/Default.aspx" image="icon_securityroles_16px.gif" imagepath="/sPort/images/" /><menuitem id="42" title="&amp;nbsp;User Accounts" url="http://localhost/sPort/Admin/UserAccounts/tabid/42/Default.aspx" image="icon_users_16px.gif" imagepath="/sPort/images/" /><menuitem id="43" title="&amp;nbsp;Vendors" url="http://localhost/sPort/Admin/Vendors/tabid/43/Default.aspx" image="icon_vendors_16px.gif" imagepath="/sPort/images/" /><menuitem id="44" title="&amp;nbsp;Site Log" url="http://localhost/sPort/Admin/SiteLog/tabid/44/Default.aspx" image="icon_sitelog_16px.gif" imagepath="/sPort/images/" /><menuitem id="45" title="&amp;nbsp;Newsletters" url="http://localhost/sPort/Admin/BulkEmail/tabid/45/Default.aspx" image="icon_bulkmail_16px.gif" imagepath="/sPort/images/" /><menuitem id="46" title="&amp;nbsp;File Manager" url="http://localhost/sPort/Admin/FileManager/tabid/46/Default.aspx" image="icon_filemanager_16px.gif" imagepath="/sPort/images/" /><menuitem id="47" title="&amp;nbsp;Recycle Bin" url="http://localhost/sPort/Admin/RecycleBin/tabid/47/Default.aspx" image="icon_recyclebin_16px.gif" imagepath="/sPort/images/" /><menuitem id="48" title="&amp;nbsp;Log Viewer" url="http://localhost/sPort/Admin/LogViewer/tabid/48/Default.aspx" image="icon_viewstats_16px.gif" imagepath="/sPort/images/" /><menuitem id="49" title="&amp;nbsp;Skins" url="http://localhost/sPort/Admin/Skins/tabid/49/Default.aspx" image="icon_skins_16px.gif" imagepath="/sPort/images/" /><menuitem id="50" title="&amp;nbsp;Languages" url="http://localhost/sPort/Admin/Languages/tabid/50/Default.aspx" image="icon_language_16px.gif" imagepath="/sPort/images/" /></menuitem><menuitem id="7" title="Host"><menuitem id="16" title="&amp;nbsp;Host Settings" url="http://localhost/sPort/Host/Host Settings/tabid/16/portalid/0/Default.aspx" image="icon_hostsettings_16px.gif" imagepath="/sPort/images/" /><menuitem id="17" title="&amp;nbsp;Portals" url="http://localhost/sPort/Host/Portals/tabid/17/portalid/0/Default.aspx" image="icon_portals_16px.gif" imagepath="/sPort/images/" /><menuitem id="18" title="&amp;nbsp;Module Definitions" url="http://localhost/sPort/Host/Module Definitions/tabid/18/portalid/0/Default.aspx" image="icon_moduledefinitions_16px.gif" imagepath="/sPort/images/" /><menuitem id="19" title="&amp;nbsp;File Manager" url="http://localhost/sPort/Host/File Manager/tabid/19/portalid/0/Default.aspx" image="icon_filemanager_16px.gif" imagepath="/sPort/images/" /><menuitem id="20" title="&amp;nbsp;Vendors" url="http://localhost/sPort/Host/Vendors/tabid/20/portalid/0/Default.aspx" image="icon_vendors_16px.gif" imagepath="/sPort/images/" /><menuitem id="21" title="&amp;nbsp;SQL" url="http://localhost/sPort/Host/SQL/tabid/21/portalid/0/Default.aspx" image="icon_sql_16px.gif" imagepath="/sPort/images/" /><menuitem id="25" title="&amp;nbsp;Schedule" url="http://localhost/sPort/Host/Schedule/tabid/25/portalid/0/Default.aspx" image="icon_scheduler_16px.gif" imagepath="/sPort/images/" /><menuitem id="27" title="&amp;nbsp;Languages" url="http://localhost/sPort/Host/Languages/tabid/27/portalid/0/Default.aspx" image="icon_language_16px.gif" imagepath="/sPort/images/" /><menuitem id="29" title="&amp;nbsp;Search Admin" url="http://localhost/sPort/Host/Search Admin/tabid/29/portalid/0/Default.aspx" image="icon_search_16px.gif" imagepath="/sPort/images/" /><menuitem id="33" title="&amp;nbsp;Lists" url="http://localhost/sPort/Host/Lists/tabid/33/portalid/0/Default.aspx" image="icon_lists_16px.gif" imagepath="/sPort/images/" /><menuitem id="34" title="&amp;nbsp;SuperUsers Accounts" url="http://localhost/sPort/Host/Superuser Accounts/tabid/34/portalid/0/Default.aspx" image="icon_users_16px.gif" imagepath="/sPort/images/" /><menuitem id="35" title="&amp;nbsp;Skins" url="http://localhost/sPort/Host/Skins/tabid/35/portalid/0/Default.aspx" image="icon_skins_16px.gif" imagepath="/sPort/images/" /></menuitem></root></xml></span>
</TD>
    <TD class="skingradient" vAlign="middle" align="right" nowrap><input name="dnnnnSEARCH:txtSearch" type="text" maxlength="255" size="20" id="dnn_dnnSEARCH_txtSearch" class="NormalTextBox" onkeydown="return __dnn_KeyDown('13', '__doPostBack(%27dnnnnSEARCH:cmdSearch%27,%27%27)', event);" />&nbsp;<a id="dnn_dnnSEARCH_cmdSearch" class="SkinObject" href=__doPostBack('dnn$dnnSEARCH$cmdSearch','')">Search</a>

</TD>
  </TR>
</TABLE>
<TABLE cellSpacing="0" cellPadding="3" width="100%" border="0">
  <TR>
    <TD width="200" vAlign="top" align="left" nowrap><span id="dnn_dnnCURRENTDATE_lblDate" class="SkinObject">Monday, June 20, 2005</span>
</TD>
    <TD width="100%" vAlign="top" align="center"><B>..::</B>&nbsp;<span id="dnn_dnnBREADCRUMB_lblBreadCrumb"><a href="http://localhost/sPort/FileManager/tabid/52/Default.aspx" class="SkinObject">File Manager</a></span>
<B>::..</B></TD>
    <TD width="200" vAlign="top" align="right" nowrap><a id="dnn_dnnUSER_hypRegister" title="Click Here To Edit Your Account Profile" class="SkinObject" href="SuperUser'>http://localhost/sPort/FileManager/tabid/52/ctl/Register/Default.aspx">SuperUser Account</a>&nbsp;&nbsp;<a id="dnn_dnnLOGIN_hypLogin" class="SkinObject" href="Logouthttp://localhost/sPort/FileManager/tabid/52/portalid/0/Logoff.aspx">Logout</a></TD>
  </TR>
</TABLE>
</TD>
</TR>
<TR>
<TD valign="top" height="100%">
<TABLE cellspacing="3" cellpadding="3" width="100%" border="0">
  <TR>
    <TD id="dnn_TopPane" class="toppane" colspan="3" valign="top" align="center"></TD>

  </TR>
  <TR valign="top">
    <TD id="dnn_LeftPane" class="leftpane" valign="top" align="center"></TD>

    <TD id="dnn_ContentPane" class="contentpane" valign="top" align="center">
      <TABLE class="containermaster_blue" cellSpacing="0" cellPadding="5" align="center" border="0">
        <TR>
          <TD class="containerrow1_blue">
            <TABLE width="100%" border="0" cellpadding="0" cellspacing="0">
              <TR>
                <TD valign="middle" nowrap><span id="dnn_ctr364_dnnACTIONS_ctlActions" name="dnn:ctr364nnACTIONS:ctlActions" HlColor="White" ShColor="Gray" SelForeColor="White" SelColor="Navy" FontStyle="font-family: ; font-size: ; font-weight: normal; font-style: normal; text-decoration: " MenuTransitionStyle=" " SysImgPath="/sPort/Images/" Display="horizontal" IconWidth="15" MODisplay="None" MOutDelay="500" MenuTransition="None" IconImgPath="/sPort/Images/" ArrowImage="action_right.gif" CSSMenuArrow="ModuleTitle_MenuArrow" CSSMenuBreak="ModuleTitle_MenuBreak" CSSMenuContainer="ModuleTitle_MenuContainer" CSSMenuBar="ModuleTitle_MenuBar" CSSSubMenu="ModuleTitle_SubMenu" CSSMenuIcon="ModuleTitle_MenuIcon" CSSMenuItem="ModuleTitle_MenuItem" CSSMenuItemSel="ModuleTitle_MenuItemSel" CSSRootMenuArw="ModuleTitle_RootMenuArrow" SupportsTrans="1"><xml id="SolpartMenuDI" onreadystatechange="if (this.readyState == 'complete') spm_initMyMenu(this, spm_getById('dnn_ctr364_dnnACTIONS_ctlActions'))"><root><menuitem id="0" title=" " image="action.gif" itemstyle="background-color: Transparent; font-size: 1pt;"><menuitem id="1" title="&amp;nbsp;&amp;nbsp;Help" url="http://localhost/sPort/FileManager/tabid/52/ctl/Help/ctlid/177/moduleid/364/Default.aspx" image="help.gif" server="1" /><menuitem id="2" title="&amp;nbsp;&amp;nbsp;Online Help" url="http://www.dotnetnuke.com/default.aspx?tabid=787&amp;helpculture=en-us&amp;helpmodule=Wrallp.fileManager" image="help.gif" server="1" /></menuitem></root></xml></span>
</TD>
                <TD valign="middle" nowrap></TD>
                <TD valign="middle" width="100%" nowrap>&nbsp;<span id="dnn_ctr364_dnnTITLE_lblTitle" class="Head">File Upload</span></TD>
                <TD valign="middle" nowrap><a id="dnn_ctr364_dnnACTIONBUTTON5_ico1" href=__doPostBack('dnn$ctr364$dnnACTIONBUTTON5$ico1','')"><img title="Help" src="/sPort/images/help.gif" border="0" /></a></TD>
              </TR>
            </TABLE>
          </TD>
        </TR>
        <TR>
          <TD id="dnn_ctr364_ContentPane" align="center"><div id="dnn_ctr364_ModuleContent">
 
<!-- Add literal control as placeholder for header script --><script language="javascript">
function startupload() {
for(i=0;i<myWebForm.length;i++){XFile.AddFormElement(myWebForm.elements.name, myWebForm.elements.value)};
winstyle="height=300,width=400,status=yes,toolbar=no,menubar=no,location=no";
window.open("progress.htm",null,winstyle);
event.returnValue = false;
}
</script>

<table class="Settings" cellSpacing="2" cellPadding="2" summary="Web Upload Design Table">
 <tr>
  <td vAlign="top" width="560"><div id="dnn_ctr364_webUpload_pnlUpload" class="WorkPanel">
 
    <table id="dnn_ctr364_webUpload_tblUpload" class="Settings" height="151" cellspacing="2" cellpadding="2" summary="Web Upload Design Table">
   <tr>
    <TD class="Head" align="center" colspan="2">
       <span id="dnn_ctr364_webUpload_lblUploadType">Upload Content Files</span><BR>
       <HR>
      </TD>
   </tr>
   <tr id="dnn_ctr364_webUpload_trRoot">
    <TD width="100">
       </TD>
    <TD width="425">
       </TD>
   </tr>
   <tr>
    <TD colspan="2"><!-- Add literal control as placeholder for form script -->
       <OBJECT id="AXFFile" classid="CLSID:230C3D02-DA27-11D2-8612-00A0C93EEA3C"
height = "200"
codebase = "saxfile.cab"
Style = "HEIGHT: 200px; LEFT: 0px; TOP: 0px; WIDTH: 400px"
width="400">
<PARAM NAME="_cx" VALUE="10583">
<PARAM NAME="_cy" VALUE="5292">
<PARAM NAME="Appearance" VALUE="0">
<PARAM NAME="BackColor" VALUE="16777215">
<PARAM NAME="BackStyle" VALUE="0">
<PARAM NAME="BorderColor" VALUE="3452816845">
<PARAM NAME="BorderStyle" VALUE="0">
<PARAM NAME="Enabled" VALUE="-1">
<PARAM NAME="ForeColor" VALUE="0">
<PARAM NAME="TabStop" VALUE="-1">
</OBJECT>
<INPUT TYPE="SUBMIT" name="UploadBtn" VALUE="Start Upload">
<script language="javascript">
var XFile = document.all("AXFFile").XFRequest;
XFile.TimeOut = 3600;
XFile.Server = "localhost";
XFile.ObjectName = "/sPortDev/DesktopModules/wrallp.fileManager/webUpload.ascx";
if (XFile.FormElements.Count > 1)XFile.FormElements.RemoveAll;
</script>
&nbsp;</TD>
   </tr>
   <tr>
    <TD align="center" colspan="2">&nbsp;&nbsp;
       </TD>
   </tr>
   <tr id="dnn_ctr364_webUpload_trFolders">
    <TD align="center" colspan="2">
       <select name="dnn:ctr364:webUploaddlFolders" id="dnn_ctr364_webUpload_ddlFolders" style="width:525px;">
     <option value="">Root</option>

    </select></TD>
   </tr>
   <tr>
    <TD align="center" colspan="2"><LABEL style="DISPLAY: none"
            for="dnn_ctr364_webUpload_lstFiles">First Files</LABEL>
       <select name="dnn:ctr364:webUpload:lstFiles" size="5" id="dnn_ctr364_webUpload_lstFiles" class="NormalTextBox" style="width:525px;">

    </select></TD>
   </tr>
   <tr id="dnn_ctr364_webUpload_trUnzip">
    <TD colspan="2">
       <span class="Normal"><input id="dnn_ctr364_webUpload_chkUnzip" type="checkbox" name="dnn:ctr364:webUpload:chkUnzip" /><label for="dnn_ctr364_webUpload_chkUnzip">Decompress ZIP Files?</label></span></TD>
   </tr>
   <tr>
    <TD align="left" colspan="2">
       <a id="dnn_ctr364_webUpload_cmdUpload" class="CommandButton" href=__doPostBack('dnn$ctr364$webUpload$cmdUpload','')">Upload New File</a>&nbsp;&nbsp;
       <a id="dnn_ctr364_webUpload_cmdRemove" class="CommandButton" href=__doPostBack('dnn$ctr364$webUpload$cmdRemove','')">Remove</a>&nbsp;&nbsp;
       <a id="dnn_ctr364_webUpload_cmdCancel" class="CommandButton" href=__doPostBack('dnn$ctr364$webUpload$cmdCancel','')">Cancel</a></TD>
   </tr>
   <tr>
    <TD align="left" colspan="2">
       <span id="dnn_ctr364_webUpload_lblMessage" class="Normal" style="width:500px;"></span></TD>
   </tr>
  </table>
 
    <BR>
   
  
 </div></td>
 </tr>
</table>

</div></TD>

        </TR>
        <TR>
          <TD>
            <HR class="containermaster_blue">
            <TABLE width="100%" border="0" cellpadding="0" cellspacing="0">
              <TR>
                <TD align="left" valign="middle" nowrap></TD>
                <TD align="right" valign="middle" nowrap>&nbsp;&nbsp;</TD>
              </TR>
            </TABLE>
          </TD>
        </TR>
      </TABLE>
      <BR>
</TD>

    <TD id="dnn_RightPane" class="rightpane" valign="top" align="center"></TD>

  </TR>
  <TR>
    <TD id="dnn_BottomPane" class="bottompane" colspan="3" valign="top" align="center"></TD>

  </TR>
</TABLE>
</TD>
</TR>
<TR>
<TD valign="top">
<TABLE class="skingradient" cellSpacing="0" cellPadding="0" width="100%" border="0">
  <TR>
    <TD valign="middle" align="center"><span id="dnn_dnnCOPYRIGHT_lblCopyright" class="SkinObject">Copyright 2002-2005 DotNetNuke</span>
&nbsp;&nbsp;<a id="dnn_dnnTERMS_hypTerms" class="SkinObject" href="Terms'>http://localhost/sPort/FileManager/tabid/52/ctl/Terms/Default.aspx">Terms Of Use</a>&nbsp;&nbsp;<a id="dnn_dnnPRIVACY_hypPrivacy" class="SkinObject" href="Privacy'>http://localhost/sPort/FileManager/tabid/52/ctl/Privacy/Default.aspx">Privacy Statement</a></TD>
  </TR>
</TABLE>
</TD>
</TR>
<TR>
<TD valign="top" align="center"><a id="dnn_dnnDOTNETNUKE_hypDotNetNuke" class="Normal" href="http://www.dotnetnuke.com" style="font-size:9px;">Portal engine source code is copyright 2002-2005 by DotNetNuke. All Rights Reserved</a></TD>
</TR>
</TABLE>
</TD>
</TR>
</TABLE>
   <input name="ScrollTop" id="ScrollTop" type="hidden" />
   <input name="__dnnVariable" id="__dnnVariable" type="hidden" />
 <input type="hidden" name="__VIEWSTATE" value="dDwtMzA0NTM5ODcxO3Q8O2w8aTwzPjs+O2w8dDw7bDxpPDE+Oz47bDx0PDtsPGk8Mz47PjtsPHQ8O2w8aTwwPjs+O2w8dDw7bDxpPDE+O2k8Mz47aTw1PjtpPDk+O2k8MTE+O2k8MTM+O2k8MTU+O2k8MTc+O2k8MjM+O2k8Mjk+O2k8MzE+O2k8MzM+O2k8MzU+Oz47bDx0PDtsPGk8MD47PjtsPHQ8O2w8aTwxPjtpPDM+O2k8NT47aTw3PjtpPDk+O2k8MTE+O2k8MTM+O2k8MTU+O2k8MTc+O2k8MTk+O2k8MjE+O2k8MjM+O2k8MjU+O2k8Mjc+O2k8MzA+O2k8MzI+O2k8MzQ+O2k8MzY+O2k8Mzg+O2k8NDU+O2k8NDc+O2k8NDk+O2k8NTE+O2k8NTM+O2k8NTU+O2k8NTc+O2k8NTk+O2k8NjE+O2k8NjM+O2k8NjU+O2k8Njc+O2k8Njk+O2k8NzE+O2k8NzM+O2k8NzU+Oz47bDx0PHA8cDxsPFRleHQ7PjtsPFBhZ2UgRnVuY3Rpb25zOz4+Oz47Oz47dDx0PDtwPGw8aTwwPjtpPDE+Oz47bDxBZGQgTmV3IE1vZHVsZTtBZGQgRXhpc3RpbmcgTW9kdWxlOz4+O2w8aTwwPjs+Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPENvbW1vbiBUYXNrczs+Pjs+Ozs+O3Q8O2w8aTwwPjs+O2w8dDxwPHA8bDxJbWFnZVVybDtBbHRlcm5hdGVUZXh0Oz47bDwvc1BvcnQvYWRtaW4vQ29udHJvbFBhbmVsL2ltYWdlcy9pY29uYmFyX2FkZHRhYi5naWY7QWRkIE5ldyBQYWdlOz4+Oz47Oz47Pj47dDw7bDxpPDA+Oz47bDx0PHA8cDxsPEltYWdlVXJsO0FsdGVybmF0ZVRleHQ7PjtsPC9zUG9ydC9hZG1pbi9Db250cm9sUGFuZWwvaW1hZ2VzL2ljb25iYXJfZWRpdHRhYi5naWY7Q3VycmVudCBQYWdlIFNldHRpbmdzOz4+Oz47Oz47Pj47dDxwPDtwPGw8b25DbGljazs+O2w8amF2YXNjcmlwdDpyZXR1cm4gY29uZmlybSgnQXJlIFlvdSBTdXJlIFlvdSBXaXNoIFRvIERlbGV0ZSBUaGlzIFBhZ2U/JylcOzs+Pj47bDxpPDA+Oz47bDx0PHA8cDxsPEltYWdlVXJsO0FsdGVybmF0ZVRleHQ7PjtsPC9zUG9ydC9hZG1pbi9Db250cm9sUGFuZWwvaW1hZ2VzL2ljb25iYXJfZGVsZXRldGFiLmdpZjtEZWxldGUgQ3VycmVudCBQYWdlOz4+Oz47Oz47Pj47dDw7bDxpPDA+Oz47bDx0PHA8cDxsPEltYWdlVXJsO0FsdGVybmF0ZVRleHQ7PjtsPC9zUG9ydC9hZG1pbi9Db250cm9sUGFuZWwvaW1hZ2VzL2ljb25iYXJfY29weXRhYi5naWY7Q29weSBDdXJyZW50IFBhZ2U7Pj47Pjs7Pjs+Pjt0PDtsPGk8MD47PjtsPHQ8cDxwPGw8SW1hZ2VVcmw7QWx0ZXJuYXRlVGV4dDs+O2w8L3NQb3J0L2FkbWluL0NvbnRyb2xQYW5lbC9pbWFnZXMvaWNvbmJhcl9wcmV2aWV3dGFiLmdpZjtQcmV2aWV3IEN1cnJlbnQgUGFnZTs+Pjs+Ozs+Oz4+O3Q8cDxwPGw8VGV4dDs+O2w8QWRkOz4+Oz47Oz47dDxwPHA8bDxUZXh0Oz47bDxTZXR0aW5nczs+Pjs+Ozs+O3Q8cDxwPGw8VGV4dDs+O2w8RGVsZXRlOz4+O3A8bDxvbkNsaWNrOz47bDxqYXZhc2NyaXB0OnJldHVybiBjb25maXJtKCdBcmUgWW91IFN1cmUgWW91IFdpc2ggVG8gRGVsZXRlIFRoaXMgUGFnZT8nKVw7Oz4+Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPENvcHk7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPFByZXZpZXc7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPE1vZHVsZTo7Pj47Pjs7Pjt0PHQ8O3Q8aTwyMT47QDxcPFNlbGVjdCBBIE1vZHVsZVw+O0FjY291bnQgTG9naW47QW5ub3VuY2VtZW50cztCYW5uZXJzO0NvbnRhY3RzO0Rpc2N1c3Npb25zO0RvY3VtZW50cztFdmVudHM7RkFRcztGZWVkYmFjaztJRnJhbWU7SW1hZ2U7TGlua3M7TmV3cyBGZWVkcyAoUlNTKTtTZWFyY2ggSW5wdXQ7U2VhcmNoIFJlc3VsdHM7VGV4dC9IVE1MO1VzZXIgQWNjb3VudDtVc2VyIERlZmluZWQgVGFibGU7V3JhbGxwLmZpbGVNYW5hZ2VyO1hNTC9YU0w7PjtAPC0xOzMyOzQ5OzE1OzUwOzUxOzUyOzUzOzU0OzU1OzU2OzU3OzU4OzU5OzQ0OzQ1OzYwOzMzOzYxOzYzOzYyOz4+Oz47Oz47dDxwPHA8bDxUZXh0Oz47bDxQYW5lOjs+Pjs+Ozs+O3Q8dDw7cDxsPGk8MD47PjtsPHA8Q29udGVudFBhbmU7Q29udGVudFBhbmU+Oz4+Oz47Oz47dDxwPHA8bDxFbmFibGVkOz47bDxvPGY+Oz4+Oz47bDxpPDA+Oz47bDx0PHA8cDxsPEltYWdlVXJsO0FsdGVybmF0ZVRleHQ7PjtsPC9zUG9ydC9BZG1pbi9Db250cm9sUGFuZWwvaW1hZ2VzL2ljb25iYXJfYWRkbW9kdWxlX2J3LmdpZjtBZGQgTmV3IE1vZHVsZTs+Pjs+Ozs+Oz4+O3Q8cDxwPGw8VGV4dDs+O2w8VGl0bGU6Oz4+Oz47Oz47dDx0PDtwPGw8aTwwPjtpPDE+Oz47bDxUb3A7Qm90dG9tOz4+Oz47Oz47dDxwPHA8bDxUZXh0O0VuYWJsZWQ7PjtsPEFkZDtvPGY+Oz4+Oz47Oz47dDxwPHA8bDxUZXh0Oz47bDxWaXNpYmlsaXR5Ojs+Pjs+Ozs+O3Q8dDw7cDxsPGk8MD47aTwxPjs+O2w8U2FtZSBBcyBQYWdlO1BhZ2UgRWRpdG9ycyBPbmx5Oz4+Oz47Oz47dDxwPHA8bDxUZXh0Oz47bDxBbGlnbjo7Pj47Pjs7Pjt0PHQ8O3A8bDxpPDA+O2k8MT47aTwyPjs+O2w8TGVmdDtDZW50ZXI7UmlnaHQ7Pj47Pjs7Pjt0PDtsPGk8MD47PjtsPHQ8cDxwPGw8SW1hZ2VVcmw7QWx0ZXJuYXRlVGV4dDs+O2w8L3NQb3J0L2FkbWluL0NvbnRyb2xQYW5lbC9pbWFnZXMvaWNvbmJhcl93aXphcmQuZ2lmO0J1aWxkIFNpdGUgV2l6YXJkOz4+Oz47Oz47Pj47dDw7bDxpPDA+Oz47bDx0PHA8cDxsPEltYWdlVXJsO0FsdGVybmF0ZVRleHQ7PjtsPC9zUG9ydC9hZG1pbi9Db250cm9sUGFuZWwvaW1hZ2VzL2ljb25iYXJfc2l0ZS5naWY7RWRpdCBTaXRlIFNldHRpbmdzOz4+Oz47Oz47Pj47dDw7bDxpPDA+Oz47bDx0PHA8cDxsPEltYWdlVXJsO0FsdGVybmF0ZVRleHQ7PjtsPC9zUG9ydC9hZG1pbi9Db250cm9sUGFuZWwvaW1hZ2VzL2ljb25iYXJfdXNlcnMuZ2lmO0FkZCBOZXcgVXNlcjs+Pjs+Ozs+Oz4+O3Q8O2w8aTwwPjs+O2w8dDxwPHA8bDxJbWFnZVVybDtBbHRlcm5hdGVUZXh0Oz47bDwvc1BvcnQvYWRtaW4vQ29udHJvbFBhbmVsL2ltYWdlcy9pY29uYmFyX2ZpbGVzLmdpZjtBZGQgTmV3IEZpbGU7Pj47Pjs7Pjs+Pjt0PHA8cDxsPE5hdmlnYXRlVXJsOz47bDxodHRwOi8vd3d3LmRvdG5ldG51a2UuY29tL2RlZmF1bHQuYXNweD90YWJpZD03ODcmaGVscGN1bHR1cmU9ZW4tdXM7Pj47PjtsPGk8MD47PjtsPHQ8cDxwPGw8SW1hZ2VVcmw7QWx0ZXJuYXRlVGV4dDs+O2w8L3NQb3J0L2FkbWluL0NvbnRyb2xQYW5lbC9pbWFnZXMvaWNvbmJhcl9oZWxwLmdpZjtIZWxwOz4+Oz47Oz47Pj47dDxwPHA8bDxUZXh0Oz47bDxXaXphcmQ7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPFNpdGU7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPFVzZXJzOz4+Oz47Oz47dDxwPHA8bDxUZXh0Oz47bDxGaWxlczs+Pjs+Ozs+O3Q8cDxwPGw8VGV4dDtOYXZpZ2F0ZVVybDs+O2w8SGVscDtodHRwOi8vd3d3LmRvdG5ldG51a2UuY29tL2RlZmF1bHQuYXNweD90YWJpZD03ODcmaGVscGN1bHR1cmU9ZW4tdXM7Pj47Pjs7Pjs+Pjs+Pjt0PDtsPGk8MD47PjtsPHQ8cDxwPGw8VG9vbFRpcDtOYXZpZ2F0ZVVybDs+O2w8RG90TmV0TnVrZSBEZWZhdWx0IFBvcnRhbDtodHRwOi8vbG9jYWxob3N0L3NQb3J0Oz4+Oz47bDxpPDA+Oz47bDx0PHA8cDxsPEltYWdlVXJsO0FsdGVybmF0ZVRleHQ7PjtsPC9zUG9ydC9Qb3J0YWxzLzAvZG5ubG9nby5naWY7RG90TmV0TnVrZSBEZWZhdWx0IFBvcnRhbDs+Pjs+Ozs+Oz4+Oz4+O3Q8O2w8aTwwPjs+O2w8dDxwPGw8VmlzaWJsZTs+O2w8bzxmPjs+Pjs7Pjs+Pjt0PDtsPGk8MD47aTwyPjs+O2w8dDxwPDtwPGw8b25rZXlkb3duOz47bDxyZXR1cm4gX19kbm5fS2V5RG93bignMTMnLCAnX19kb1Bvc3RCYWNrKCUyN2Rubjpkbm5TRUFSQ0g6Y21kU2VhcmNoJTI3LCUyNyUyNyknLCBldmVudClcOzs+Pj47Oz47dDxwPHA8bDxUZXh0Oz47bDxTZWFyY2g7Pj47Pjs7Pjs+Pjt0PDtsPGk8MD47PjtsPHQ8cDxwPGw8VGV4dDs+O2w8TW9uZGF5LCBKdW5lIDIwLCAyMDA1Oz4+Oz47Oz47Pj47dDw7bDxpPDA+Oz47bDx0PHA8cDxsPFRleHQ7PjtsPFw8YSBocmVmPSJodHRwOi8vbG9jYWxob3N0L3NQb3J0L0ZpbGVNYW5hZ2VyL3RhYmlkLzUyL0RlZmF1bHQuYXNweCIgY2xhc3M9IlNraW5PYmplY3QiXD5GaWxlIE1hbmFnZXJcPC9hXD47Pj47Pjs7Pjs+Pjt0PDtsPGk8MD47PjtsPHQ8cDxwPGw8VGV4dDtUb29sVGlwO05hdmlnYXRlVXJsOz47bDxTdXBlclVzZXIgQWNjb3VudDtDbGljayBIZXJlIFRvIEVkaXQgWW91ciBBY2NvdW50IFByb2ZpbGU7aHR0cDovL2xvY2FsaG9zdC9zUG9ydC9GaWxlTWFuYWdlci90YWJpZC81Mi9jdGwvUmVnaXN0ZXIvRGVmYXVsdC5hc3B4Oz4+Oz47Oz47Pj47dDw7bDxpPDA+Oz47bDx0PHA8cDxsPFRleHQ7TmF2aWdhdGVVcmw7PjtsPExvZ291dDtodHRwOi8vbG9jYWxob3N0L3NQb3J0L0ZpbGVNYW5hZ2VyL3RhYmlkLzUyL3BvcnRhbGlkLzAvTG9nb2ZmLmFzcHg7Pj47Pjs7Pjs+Pjt0PDtsPGk8MD47PjtsPHQ8O2w8aTwzPjtpPDU+O2k8Nz47aTw4PjtpPDEwPjtpPDEyPjtpPDE0PjtpPDE2PjtpPDE4Pjs+O2w8dDxwPHA8bDxWaXNpYmxlOz47bDxvPGY+Oz4+Oz47Oz47dDw7bDxpPDA+Oz47bDx0PHA8cDxsPFRleHQ7PjtsPEZpbGUgVXBsb2FkOz4+Oz47Oz47Pj47dDxwPHA8bDxWaXNpYmxlOz47bDxvPGY+Oz4+Oz47bDxpPDA+Oz47bDx0PHA8cDxsPEVuYWJsZWQ7VmlzaWJsZTs+O2w8bzxmPjtvPGY+Oz4+Oz47Oz47Pj47dDw7bDxpPDA+Oz47bDx0PDtsPGk8MD47PjtsPHQ8cDxwPGw8SW1hZ2VVcmw7PjtsPC9zUG9ydC9pbWFnZXMvaGVscC5naWY7Pj47Pjs7Pjs+Pjs+Pjt0PDtsPGk8MT47PjtsPHQ8O2w8aTwwPjs+O2w8dDw7bDxpPDM+Oz47bDx0PDtsPGk8MT47aTwzPjs+O2w8dDw7bDxpPDA+O2k8MT47aTw0PjtpPDY+O2k8Nz47PjtsPHQ8O2w8aTwwPjs+O2w8dDw7bDxpPDE+Oz47bDx0PHA8cDxsPFRleHQ7PjtsPFVwbG9hZCBDb250ZW50IEZpbGVzOz4+Oz47Oz47Pj47Pj47dDxwPGw8VmlzaWJsZTs+O2w8bzx0Pjs+PjtsPGk8MD47aTwxPjs+O2w8dDw7bDxpPDE+Oz47bDx0PHA8cDxsPFRleHQ7PjtsPERvdE5ldE51a2UgRGVmYXVsdCBQb3J0YWw6Oz4+Oz47Oz47Pj47dDw7bDxpPDE+Oz47bDx0PHA8cDxsPFRleHQ7PjtsPGM6XFxpbmV0cHViXFx3d3dyb290XFxzUG9ydFxcUG9ydGFsc1xcMFxcZmlsZXNcXDs+Pjs+Ozs+Oz4+Oz4+O3Q8cDxsPFZpc2libGU7PjtsPG88dD47Pj47bDxpPDA+Oz47bDx0PDtsPGk8MT47PjtsPHQ8dDw7dDxpPDE+O0A8Um9vdDs+O0A8XGU7Pj47Pjs7Pjs+Pjs+Pjt0PHA8bDxWaXNpYmxlOz47bDxvPHQ+Oz4+O2w8aTwwPjs+O2w8dDw7bDxpPDE+Oz47bDx0PHA8cDxsPFRleHQ7PjtsPERlY29tcHJlc3MgWklQIEZpbGVzPzs+Pjs+Ozs+Oz4+Oz4+O3Q8O2w8aTwwPjs+O2w8dDw7bDxpPDE+O2k8Mz47aTw1Pjs+O2w8dDxwPHA8bDxUZXh0Oz47bDxVcGxvYWQgTmV3IEZpbGU7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPFJlbW92ZTs+Pjs+Ozs+O3Q8cDxwPGw8VGV4dDs+O2w8Q2FuY2VsOz4+Oz47Oz47Pj47Pj47Pj47dDw7bDxpPDA+O2k8MT47aTw1Pjs+O2w8dDw7bDxpPDA+Oz47bDx0PDtsPGk8MT47PjtsPHQ8cDxwPGw8VGV4dDs+O2w8UmVzb3VyY2UgVXBsb2FkIExvZ3M7Pj47Pjs7Pjs+Pjs+Pjt0PDtsPGk8MD47PjtsPHQ8O2w8aTwxPjs+O2w8dDxwPHA8bDxUZXh0Oz47bDxSZXR1cm47Pj47Pjs7Pjs+Pjs+Pjt0PDtsPGk8MD47PjtsPHQ8O2w8aTwxPjs+O2w8dDxwPHA8bDxUZXh0Oz47bDxSZXR1cm47Pj47Pjs7Pjs+Pjs+Pjs+Pjs+Pjs+Pjs+Pjs+Pjt0PHA8cDxsPFZpc2libGU7PjtsPG88Zj47Pj47Pjs7Pjt0PHA8cDxsPFZpc2libGU7PjtsPG88Zj47Pj47Pjs7Pjt0PHA8cDxsPFZpc2libGU7PjtsPG88Zj47Pj47Pjs7Pjt0PHA8cDxsPFZpc2libGU7PjtsPG88Zj47Pj47Pjs7Pjs+Pjs+Pjt0PDtsPGk8MD47PjtsPHQ8cDxwPGw8VGV4dDs+O2w8Q29weXJpZ2h0IDIwMDItMjAwNSBEb3ROZXROdWtlOz4+Oz47Oz47Pj47dDw7bDxpPDA+Oz47bDx0PHA8cDxsPFRleHQ7TmF2aWdhdGVVcmw7PjtsPFRlcm1zIE9mIFVzZTtodHRwOi8vbG9jYWxob3N0L3NQb3J0L0ZpbGVNYW5hZ2VyL3RhYmlkLzUyL2N0bC9UZXJtcy9EZWZhdWx0LmFzcHg7Pj47Pjs7Pjs+Pjt0PDtsPGk8MD47PjtsPHQ8cDxwPGw8VGV4dDtOYXZpZ2F0ZVVybDs+O2w8UHJpdmFjeSBTdGF0ZW1lbnQ7aHR0cDovL2xvY2FsaG9zdC9zUG9ydC9GaWxlTWFuYWdlci90YWJpZC81Mi9jdGwvUHJpdmFjeS9EZWZhdWx0LmFzcHg7Pj47Pjs7Pjs+Pjt0PDtsPGk8MD47PjtsPHQ8cDxwPGw8VGV4dDtOYXZpZ2F0ZVVybDs+O2w8UG9ydGFsIGVuZ2luZSBzb3VyY2UgY29kZSBpcyBjb3B5cmlnaHQgMjAwMi0yMDA1IGJ5IERvdE5ldE51a2UuIEFsbCBSaWdodHMgUmVzZXJ2ZWQ7aHR0cDovL3d3dy5kb3RuZXRudWtlLmNvbTs+Pjs+Ozs+Oz4+Oz4+Oz4+Oz4+Oz4+Oz4+O2w8ZG5uOmN0cjM2NDp3ZWJVcGxvYWQ6Y2hrVW56aXA7Pj5i+IG93gtdHpv6e+Epk3mFTqyT/Q==" /> </form>
 </BODY>
</HTML>

____________page


<%@ Control language="vb" CodeBehind="WebUpload.ascx.vb" AutoEventWireup="false" Explicit="True" Inherits="wrallp.fileManager.WebUpload" %>
<!-- Add literal control as placeholder for header script --><asp:literal id="litHeadScript" runat="server" EnableViewState="False"></asp:literal>
<table class="Settings" cellSpacing="2" cellPadding="2" summary="Web Upload Design Table">
 <tr>
  <td vAlign="top" width="560"><aspanel id="pnlUpload" runat="server" cssclass="WorkPanel" visible="True">
    <TABLE class="Settings" id="tblUpload" height="151" cellSpacing="2" cellPadding="2" summary="Web Upload Design Table"
     runat="server">
     <TR>
      <TD class="Head" align="center" colSpan="2">
       <asp:label id="lblUploadType" runat="server"></asp:label><BR>
       <HR>
      </TD>
     </TR>
     <TR id="trRoot" runat="server" visible="false">
      <TD width="100">
       <asp:label id="lblRootType" runat="server" visible="False" cssclass="SubHead"></asp:label></TD>
      <TD width="425">
       <asp:label id="lblRootFolder" runat="server" visible="False" cssclass="Normal"></asp:label></TD>
     </TR>
     <TR>
      <TD colSpan="2"><!-- Add literal control as placeholder for form script -->
       <asp:Literal id="litScript" EnableViewState="False" Runat="server"></asp:Literal>&nbsp;</TD>
     </TR>
     <TR>
      <TD align="center" colSpan="2">&nbsp;&nbsp;
       </TD>
     </TR>
     <TR id="trFolders" runat="server" visible="false">
      <TD align="center" colSpan="2">
       <aspropDownList id="ddlFolders" runat="server" Width="525px">
        <asp:ListItem Value="Root">Root</asp:ListItem>
        <asp:ListItem Value="Files\">Files</asp:ListItem>
        <asp:ListItem Value="Files\SubFolder\">Files\SubFolder</asp:ListItem>
       </aspropDownList></TD>
     </TR>
     <TR>
      <TD align="center" colSpan="2"><LABEL style="DISPLAY: none"
            for="<%=lstFiles.ClientID%>">First Files</LABEL>
       <asp:listbox id="lstFiles" runat="server" cssclass="NormalTextBox" width="525px" rows="5"></asp:listbox></TD>
     </TR>
     <TR id="trUnzip" runat="server" visible="false">
      <TD colSpan="2">
       <asp:checkbox id="chkUnzip" runat="server" cssclass="Normal" textalign="Right" text="Decompress ZIP Files?"
        resourcekey="Decompress"></asp:checkbox></TD>
     </TR>
     <TR>
      <TD align="left" colSpan="2">
       <asp:linkbutton id="cmdUpload" runat="server" cssclass="CommandButton" resourcekey="cmdUpload">Upload File(s)</asp:linkbutton>&nbsp;&nbsp;
       <asp:linkbutton id="cmdRemove" runat="server" cssclass="CommandButton" resourcekey="cmdRemove">Remove</asp:linkbutton>&nbsp;&nbsp;
       <asp:linkbutton id="cmdCancel" runat="server" cssclass="CommandButton" resourcekey="cmdCancel">Cancel</asp:linkbutton></TD>
     </TR>
     <TR>
      <TD align="left" colSpan="2">
       <asp:label id="lblMessage" runat="server" cssclass="Normal" width="500px" enableviewstate="False"></asp:label></TD>
     </TR>
    </TABLE>
    <BR>
    <TABLE id="tblLogs" cellSpacing="0" cellPadding="0" summary="Resource Upload Logs Table"
     runat="server" visible="False">
     <TR>
      <TD>
       <asp:label id="lblLogTitle" runat="server" resourcekey="LogTitle">Resource Upload Logs</asp:label></TD>
     </TR>
     <TR>
      <TD>
       <asp:linkbutton id="cmdReturn1" runat="server" cssclass="CommandButton" resourcekey="cmdReturn">Return to File Manager</asp:linkbutton></TD>
     </TR>
     <TR>
      <TD>&nbsp;</TD>
     </TR>
     <TR>
      <TD>
       <asplaceholder id="phPaLogs" runat="server"></asplaceholder></TD>
     </TR>
     <TR>
      <TD>&nbsp;</TD>
     </TR>
     <TR>
      <TD>
       <asp:linkbutton id="cmdReturn2" runat="server" cssclass="CommandButton" resourcekey="cmdReturn">Return to File Manager</asp:linkbutton></TD>
     </TR>
    </TABLE>
   </aspanel></td>
 </tr>
</table>

___________________code behind

'
' DotNetNuke -  http://www.dotnetnuke.com
' Copyright (c) 2002-2005
' by Shaun Walker ( ales@perpetualmotion.ca" href="sales@perpetualmotion.ca'>mailtoales@perpetualmotion.ca">sales@perpetualmotion.ca ) of Perpetual Motion Interactive Systems Inc. ( http://www.perpetualmotion.ca )
'
' Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
' documentation files (the "Software"), to deal in the Software without restriction, including without limitation
' the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and
' to permit persons to whom the Software is furnished to do so, subject to the following conditions:
'
' The above copyright notice and this permission notice shall be included in all copies or substantial portions
' of the Software.
'
' THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
' TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
' THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
' CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
' DEALINGS IN THE SOFTWARE.
'

Imports DotNetNuke.Services.FileSystem
Imports ICSharpCode.SharpZipLib.Zip
Imports System.IO
Imports DotNetNuke.Entities.Modules
Imports DotNetNuke.Common.Globals
Imports DotNetNuke.Services.Exceptions
Imports DotNetNuke
Imports DotNetNuke.Security
Imports System.Web.UI.WebControls
Imports System.Web.UI.HtmlControls
Imports System.Web

Imports SoftArtisans.Net


Namespace wrallp.fileManager

    Public Enum UploadType
        File
        Container
        Skin
        [Module]
        LanguagePack
    End Enum
    ''' -----------------------------------------------------------------------------
    ''' Project  : DotNetNuke
    ''' Class  : WebUpload
    '''
    ''' -----------------------------------------------------------------------------
    ''' <summary>
    ''' Supplies the functionality for uploading files to the Portal
    ''' </summary>
    ''' <remarks>
    ''' </remarks>
    ''' <history>
    '''   [cnurse] 16/9/2004  Updated for localization, Help and 508
    ''' </history>
    ''' -----------------------------------------------------------------------------
    Public MustInherit Class WebUpload
        Inherits DotNetNuke.Entities.Modules.PortalModuleBase
        Dim defDir As String = "files\"

#Region "Controls"

        Protected WithEvents pnlUpload As System.Web.UI.WebControls.Panel

        'Upload
        Protected WithEvents tblUpload As System.Web.UI.HtmlControls.HtmlTable
        Protected WithEvents lblRootType As System.Web.UI.WebControls.Label
        Protected WithEvents lblRootFolder As System.Web.UI.WebControls.Label
        'Protected WithEvents optFileType As System.Web.UI.WebControls.RadioButtonList
        Protected WithEvents lstFiles As System.Web.UI.WebControls.ListBox
        Protected WithEvents cmdAdd As System.Web.UI.WebControls.LinkButton
        Protected WithEvents cmdRemove As System.Web.UI.WebControls.LinkButton
        Protected WithEvents chkUnzip As System.Web.UI.WebControls.CheckBox
        Protected WithEvents cmdUpload As System.Web.UI.WebControls.LinkButton
        Protected WithEvents cmdCancel As System.Web.UI.WebControls.LinkButton
        Protected WithEvents ddlFolders As System.Web.UI.WebControls.DropDownList
        Protected trFolders As System.Web.UI.HtmlControls.HtmlTableRow
        Protected trRoot As System.Web.UI.HtmlControls.HtmlTableRow
        Protected trUnzip As System.Web.UI.HtmlControls.HtmlTableRow

        'Message
        Protected WithEvents lblMessage As System.Web.UI.WebControls.Label

        'Upload Log
        Protected WithEvents tblLogs As System.Web.UI.HtmlControls.HtmlTable
        Protected WithEvents lblLogTitle As System.Web.UI.WebControls.Label
        Protected WithEvents phPaLogs As System.Web.UI.WebControls.PlaceHolder
        Protected WithEvents cmdReturn1 As System.Web.UI.WebControls.LinkButton
        Protected WithEvents cmdReturn2 As System.Web.UI.WebControls.LinkButton

#End Region

#Region "Members"

        Public Shared arrFiles As ArrayList = New ArrayList
        Public Shared arrTypes As ArrayList = New ArrayList
        Private _FileType As UploadType     ' content files
        Private _FileTypeName As String
        Private _DestinationFolder As String     ' content files
        Protected WithEvents lblUploadType As System.Web.UI.WebControls.Label
        Private _UploadRoles As String
        Protected WithEvents litHeadScript As System.Web.UI.WebControls.Literal
        Protected WithEvents litScript As System.Web.UI.WebControls.Literal
        Private _RootFolder As String
        'Protected WithEvents cmdBrowse As System.Web.UI.HtmlControls.HtmlInputFile
        Public _pageContext As System.Web.HttpContext

#End Region

#Region "Public Properties"
        Public ReadOnly Property DestinationFolder() As String
            Get
                If _DestinationFolder Is Nothing Then
                    _DestinationFolder = String.Empty
                    If Not (Request.QueryString("dest") Is Nothing) Then
                        _DestinationFolder = QueryStringDecode(Request.QueryString("dest"))
                    End If
                End If
                Return _DestinationFolder
            End Get
        End Property

        Public ReadOnly Property FileType() As UploadType
            Get
                _FileType = UploadType.File
                If Not (Request.QueryString("ftype") Is Nothing) Then
                    'The select statement ensures that the parameter can be converted to UploadType
                    Select Case Request.QueryString("ftype").ToLower
                        Case "file", "container", "skin", "module", "languagepack"
                            _FileType = DirectCast(System.Enum.Parse(GetType(UploadType), Request.QueryString("ftype")), UploadType)
                    End Select
                End If
                Return _FileType
            End Get
        End Property

        Public ReadOnly Property FileTypeName() As String
            Get
                If FileTypeName Is Nothing Then
                    _FileTypeName = Services.Localization.Localization.GetString(FileType.ToString, Me.LocalResourceFile)
                End If
                Return _FileTypeName
            End Get
        End Property

        Public ReadOnly Property UploadRoles() As String
            Get
                If _UploadRoles Is Nothing Then
                    _UploadRoles = String.Empty

                    Dim objModules As New ModuleController
                    'TODO:  Should replace this with a finder method in PortalSettings to look in the cached modules of the activetab - jmb 11/25/2004
                    Dim ModInfo As ModuleInfo

                    If Me.PortalSettings.ActiveTab.ParentId = Me.PortalSettings.SuperTabId Then
                        'ModInfo = objModules.GetModuleByDefinition(Null.NullInteger, "File Manager")
                    Else
                        ModInfo = objModules.GetModuleByDefinition(PortalId, "File Manager")
                    End If

                    Dim settings As Hashtable = PortalSettings.GetModuleSettings(ModInfo.ModuleID)
                    If Not CType(settings("uploadroles"), String) Is Nothing Then
                        _UploadRoles = CType(settings("uploadroles"), String)
                    End If
                End If

                Return _UploadRoles
            End Get
        End Property

        Public ReadOnly Property RootFolder() As String
            Get
                If _RootFolder Is Nothing Then
                    If PortalSettings.ActiveTab.ParentId = PortalSettings.SuperTabId Then
                        _RootFolder = Request.MapPath(Common.Globals.HostPath) & defDir
                    Else
                        _RootFolder = Request.MapPath(PortalSettings.HomeDirectory) & defDir
                    End If
                End If

                Return _RootFolder
            End Get
        End Property
        Public ReadOnly Property pageContext() As System.Web.HttpContext
            Get
                If pageContext Is Nothing Then
                    _pageContext = System.Web.HttpContext.Current
                End If
                Return _pageContext
            End Get
        End Property
#End Region

#Region "Private Methods"

        ''' -----------------------------------------------------------------------------
        ''' <summary>
        ''' This routine populates the Folder List Drop Down
        '''There is no reference to permissions here as all folders should be available to the admin.
        ''' </summary>
        ''' <param name="ChildDir"></param>
        ''' <remarks>
        ''' </remarks>
        ''' <history>
        '''   [Philip Beadle] 5/10/2004  Added
        ''' </history>
        ''' -----------------------------------------------------------------------------
        Private Sub LoadFolders(ByVal ChildDir As DirectoryInfo)
            Dim CurrentDir As DirectoryInfo
            Dim ChildDirs As DirectoryInfo()
            Dim ChildDirirectory As DirectoryInfo
            Dim ParentFolderName As String = ChildDir.FullName.Substring(lblRootFolder.Text.Length)

            CurrentDir = ChildDir
            ChildDirs = CurrentDir.GetDirectories
            For Each ChildDirirectory In ChildDirs
                Dim FolderItem As New ListItem
                Dim ItemText As String = ParentFolderName & "/" & ChildDirirectory.Name
                If ItemText.StartsWith("/") Then
                    ItemText = ItemText.Remove(0, 1)
                End If
                Dim ItemValue As String = ItemText & "/"
                FolderItem.Text = ItemText.Replace("\", "/")
                FolderItem.Value = ItemValue.Replace("\", "/")
                ddlFolders.Items.Add(FolderItem)
                If ChildDirirectory.GetDirectories.Length > 0 Then
                    LoadFolders(ChildDirirectory)
                End If
            Next
        End Sub


        ''' -----------------------------------------------------------------------------
        ''' <summary>
        ''' This routine checks the Access Security
        ''' </summary>
        ''' <remarks>
        ''' </remarks>
        ''' <history>
        '''   [cnurse] 1/21/2005  Documented
        ''' </history>
        ''' -----------------------------------------------------------------------------
        Private Sub CheckSecurity()
            Dim DenyAccess As Boolean = False
            If PortalSecurity.IsInRole(PortalSettings.AdministratorRoleName.ToString) = False And PortalSecurity.IsInRoles(UploadRoles) = False Then
                DenyAccess = True
            Else
                If Me.PortalSettings.ActiveTab.ParentId = Me.PortalSettings.AdminTabId Then
                    Select Case FileType
                        Case UploadType.LanguagePack, UploadType.Module
                            DenyAccess = True
                        Case UploadType.Skin, UploadType.Container
                            If (Convert.ToString(PortalSettings.HostSettings("SkinUpload")) = "G") And (UserInfo.IsSuperUser = False) Then
                                DenyAccess = True
                            End If
                    End Select
                End If

                If Me.PortalSettings.ActiveTab.ParentId = Me.PortalSettings.SuperTabId Then
                    If Not UserInfo.IsSuperUser Then
                        DenyAccess = False
                    End If
                End If
            End If

            If DenyAccess Then
                Response.Redirect(NavigateURL("Access Denied"), True)
            End If

        End Sub

#End Region

#Region "Public Methods"

        ''' -----------------------------------------------------------------------------
        ''' <summary>
        ''' This routine determines the Return Url
        ''' </summary>
        ''' <remarks>
        ''' </remarks>
        ''' <history>
        '''   [cnurse] 1/21/2005  Documented
        ''' </history>
        ''' -----------------------------------------------------------------------------
        Public Function ReturnURL() As String
            Dim TabID As Integer = PortalSettings.HomeTabId

            If Not Request.Params("rtab") Is Nothing Then
                TabID = Integer.Parse(Request.Params("rtab"))
            End If
            Return NavigateURL(TabID)
        End Function

#End Region

#Region "Event Handlers"

        ''' -----------------------------------------------------------------------------
        ''' <summary>
        ''' The Page_Load runs when the page loads
        ''' </summary>
        ''' <param name="sender"></param>
        ''' <param name="e"></param>
        ''' <remarks>
        ''' </remarks>
        ''' <history>
        '''   [cnurse] 16/9/2004  Updated for localization, Help and 508
        '''   [VMasanas]  9/28/2004   Changed redirect to Access Denied
        '''   [Philip Beadle]  5/10/2004  Added folder population section.
        ''' </history>
        ''' -----------------------------------------------------------------------------
        Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

            Try
                CheckSecurity()

                'xfile script
                'Put XFile related HTML and scripting here in string objects

                Dim strObject, strHead As String
                'HTML to instantiate XFile in an OBJECT tag....
                strObject = "<OBJECT id=""AXFFile"" classid=""CLSID:230C3D02-DA27-11D2-8612-00A0C93EEA3C""" & vbCrLf
                strObject = strObject & "height = ""200""" & vbCrLf
                strObject = strObject & "codebase = ""saxfile.cab""" & vbCrLf
                strObject = strObject & "Style = ""HEIGHT: 200px; LEFT: 0px; TOP: 0px; WIDTH: 400px""" & vbCrLf
                strObject = strObject & "width=""400"">" & vbCrLf
                strObject = strObject & "<PARAM NAME=""_cx"" VALUE=""10583"">" & vbCrLf
                strObject = strObject & "<PARAM NAME=""_cy"" VALUE=""5292"">" & vbCrLf
                strObject = strObject & "<PARAM NAME=""Appearance"" VALUE=""0"">" & vbCrLf
                strObject = strObject & "<PARAM NAME=""BackColor"" VALUE=""16777215"">" & vbCrLf
                strObject = strObject & "<PARAM NAME=""BackStyle"" VALUE=""0"">" & vbCrLf
                strObject = strObject & "<PARAM NAME=""BorderColor"" VALUE=""3452816845"">" & vbCrLf
                strObject = strObject & "<PARAM NAME=""BorderStyle"" VALUE=""0"">" & vbCrLf
                strObject = strObject & "<PARAM NAME=""Enabled"" VALUE=""-1"">" & vbCrLf
                strObject = strObject & "<PARAM NAME=""ForeColor"" VALUE=""0"">" & vbCrLf
                strObject = strObject & "<PARAM NAME=""TabStop"" VALUE=""-1"">" & vbCrLf
                strObject = strObject & "</OBJECT>" & vbCrLf

                'submit button
                strObject = strObject & "<INPUT TYPE=""SUBMIT"" name=""UploadBtn"" VALUE=""Start Upload"">" & vbCrLf

                'Script for setting TimeOut and the posting URL
                strObject = strObject & "<script language=""javascript"">" & vbCrLf
                strObject = strObject & "var XFile = document.all(""AXFFile"").XFRequest;" & vbCrLf
                strObject = strObject & "XFile.TimeOut = 3600;" & vbCrLf
                strObject = strObject & "XFile.Server = """ & Request.ServerVariables("HTTP_HOST") & """;" & vbCrLf
                strObject = strObject & "XFile.ObjectName = ""/sPortDev/DesktopModules/wrallp.fileManager/webUpload.ascx"";" & vbCrLf
                'check for form elements, drop any that are found. They'll be added later.
                strObject = strObject & "if (XFile.FormElements.Count > 1)XFile.FormElements.RemoveAll;" & vbCrLf
                strObject = strObject & "</script>" & vbCrLf

                'Script for instantiating Progress Indicator
                'Also check for form elements from webform, and make sure they are submitted
                strHead = "<script language=""javascript"">" & vbCrLf
                strHead = strHead & "function startupload() {" & vbCrLf
                strHead = strHead & "for(i=0;i<myWebForm.length;i++){XFile.AddFormElement(myWebForm.elements.name, myWebForm.elements.value)};" & vbCrLf
                strHead = strHead & "winstyle=""height=300,width=400,status=yes,toolbar=no,menubar=no,location=no"";" & vbCrLf
                strHead = strHead & "window.open(""progress.htm"",null,winstyle);" & vbCrLf
                strHead = strHead & "event.returnValue = false;" & vbCrLf
                strHead = strHead & "}" & vbCrLf
                strHead = strHead & "</script>" & vbCrLf

                litHeadScript.Text = strHead
                litScript.Text = strObject

                'end xfile script
                'Get localized Strings
                'Dim strHost As String = Services.Localization.Localization.GetString("HostRoot", Me.LocalResourceFile)
                'Dim strPortal As String = Services.Localization.Localization.GetString("PortalRoot", Me.LocalResourceFile)
                Dim strHost As String = PortalSettings.PortalName.ToString
                Dim strPortal As String = PortalSettings.PortalName.ToString

                If Not Page.IsPostBack Then

                    arrFiles.Clear()
                    arrTypes.Clear()

                    lblUploadType.Text = Services.Localization.Localization.GetString("UploadType" & FileType.ToString, Me.LocalResourceFile)
                    If FileType = UploadType.File Then
                        trFolders.Visible = True
                        trRoot.Visible = True
                        trUnzip.Visible = True

                        If PortalSettings.ActiveTab.ParentId = PortalSettings.SuperTabId Then
                            lblRootType.Text = strHost & ":"
                            lblRootFolder.Text = RootFolder
                        Else
                            lblRootType.Text = strPortal & ":"
                            lblRootFolder.Text = RootFolder
                        End If
                        ddlFolders.Items.Clear()
                        Dim FolderItem As New ListItem
                        FolderItem.Text = "Root"
                        FolderItem.Value = String.Empty
                        ddlFolders.Items.Add(FolderItem)
                        Dim Root As New DirectoryInfo(lblRootFolder.Text)
                        LoadFolders(Root)
                        If DestinationFolder.Length > 0 Then
                            If Not ddlFolders.Items.FindByText(DestinationFolder) Is Nothing Then
                                ddlFolders.Items.FindByText(DestinationFolder).Selected = True
                            End If
                        End If
                    End If

                    chkUnzip.Checked = False

                End If

                If (Page.IsPostBack) Then


                    Dim oFileUp As New FileUp(Me.Context)
                    oFileUp.Path = "C:\temp\scratchTest"

                    Dim iterator As SaUploadDictionaryEnum
                    iterator = CType(oFileUp.Form.GetEnumerator(), SaUploadDictionaryEnum)

                    Dim oFile As SaFile
                    Dim strResponse As String
                    Dim strUpload As String
                    Dim strElements As String

                    strUpload = "<b>File(s) Uploaded</b><br/><hr noshade size=""1""/>"
                    strElements = "<b>Form Elements</b><br/><hr noshade size=""1""/>"


                    While iterator.MoveNext()
                        'Loop through form collection.
                        'Files must be handled by FileUp
                        'Other controls are handled in usual manner (see: Else statment)
                        If TypeOf oFileUp.Form(iterator.Current) Is SaFile Then

                            oFile = CType(oFileUp.Form(iterator.Current), SaFile)

                            'It's a file input control, but was there a file?
                            'Calling Save on a non-existent file will throw an error.
                            If Not oFile.IsEmpty Then

                                oFile.Save()

                                Dim ShortFilename As String
                                Dim ContentType As String
                                Dim TotalBytes As UInt64
                                Dim ServerName As String
                                Dim Comment As String

                                ShortFilename = oFile.ShortFilename
                                ContentType = oFile.ContentType
                                TotalBytes = oFile.TotalBytes
                                ServerName = oFile.ServerName
                                '--Comment = tbComment.Text

                                strUpload += "<i>Name</i>: " & ShortFilename & "<br/>" & vbCrLf
                                strUpload += "<i>Content</i>: " & ContentType & "<br/>" & vbCrLf
                                strUpload += "<i>Size</i>: " & TotalBytes.ToString() & " Bytes.<br/>" & vbCrLf
                                strUpload += "<i>Location on Server</i>: " & ServerName & "<br/>" & vbCrLf
                                strUpload += "<br/>"

                            End If

                        Else    'Its a Form Element, handle it as a string, not a file.
                            strElements += iterator.Current & ": "
                            strElements += CType(oFileUp.Form(iterator.Current), String)
                            strElements += "<br/>"

                        End If

                    End While

                    strResponse = strUpload & strElements & "<BR><A href='http://localhost/XFileDotNetSample/XFileWebForm.aspx'>Click here to upload again.</a>"

                    'lblResponse.Text = strResponse
                    'MyTextBox.Visible = False
                End If

            Catch exc As Exception    'Module failed to load
                ProcessModuleLoadException(Me, exc)
            End Try
        End Sub

        ''' -----------------------------------------------------------------------------
        ''' <summary>
        ''' The cmdAdd_Click runs when the Add Button is clicked
        ''' </summary>
        ''' <param name="sender"></param>
        ''' <param name="e"></param>
        ''' <remarks>
        ''' </remarks>
        ''' <history>
        '''   [cnurse] 16/9/2004  Updated for localization, Help and 508
        ''' </history>
        ''' -----------------------------------------------------------------------------
        Private Sub cmdAdd_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmdAdd.Click
            Try
                If Page.IsPostBack Then
                    'If cmdBrowse.PostedFile.FileName <> "" Then
                    '    arrFiles.Add(cmdBrowse)
                    '    arrTypes.Add(FileType)
                    '    lstFiles.Items.Add(FileTypeName & " - " & cmdBrowse.PostedFile.FileName)
                    'End If
                End If

            Catch exc As Exception    'Module failed to load
                ProcessModuleLoadException(Me, exc)
            End Try
        End Sub

        ''' -----------------------------------------------------------------------------
        ''' <summary>
        ''' The cmdCancel_Click runs when the Cancel Button is clicked
        ''' </summary>
        ''' <param name="sender"></param>
        ''' <param name="e"></param>
        ''' <remarks>
        ''' </remarks>
        ''' <history>
        '''   [cnurse] 16/9/2004  Updated for localization, Help and 508
        ''' </history>
        ''' -----------------------------------------------------------------------------
        Private Sub cmdCancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdCancel.Click
            Response.Redirect(ReturnURL(), True)
        End Sub

        ''' -----------------------------------------------------------------------------
        ''' <summary>
        ''' The cmdRemove_Click runs when the Remove Button is clicked
        ''' </summary>
        ''' <param name="sender"></param>
        ''' <param name="e"></param>
        ''' <remarks>
        ''' </remarks>
        ''' <history>
        '''   [cnurse] 16/9/2004  Updated for localization, Help and 508
        ''' </history>
        ''' -----------------------------------------------------------------------------
        Private Sub cmdRemove_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmdRemove.Click
            Try
                If Not lstFiles.SelectedItem Is Nothing Then
                    arrFiles.RemoveAt(lstFiles.SelectedIndex)
                    arrTypes.RemoveAt(lstFiles.SelectedIndex)
                    lstFiles.Items.Remove(lstFiles.SelectedItem.Text)
                End If

            Catch exc As Exception    'Module failed to load
                ProcessModuleLoadException(Me, exc)
            End Try
        End Sub

        ''' -----------------------------------------------------------------------------
        ''' <summary>
        ''' The cmdReturn_Click runs when the Return Button is clicked
        ''' </summary>
        ''' <param name="sender"></param>
        ''' <param name="e"></param>
        ''' <remarks>
        ''' </remarks>
        ''' <history>
        '''   [cnurse] 16/9/2004  Updated for localization, Help and 508
        ''' </history>
        ''' -----------------------------------------------------------------------------
        Private Sub cmdReturn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdReturn1.Click, cmdReturn2.Click
            Response.Redirect(ReturnURL(), True)
        End Sub

        ''' -----------------------------------------------------------------------------
        ''' <summary>
        ''' The cmdUpload_Click runs when the Upload Button is clicked
        ''' </summary>
        ''' <param name="sender"></param>
        ''' <param name="e"></param>
        ''' <remarks>
        ''' </remarks>
        ''' <history>
        '''   [cnurse] 16/9/2004  Updated for localization, Help and 508
        ''' </history>
        ''' -----------------------------------------------------------------------------
        Private Sub cmdUpload_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdUpload.Click
            Try
                Dim strFileName As String
                Dim strFileNamePath As String
                Dim strExtension As String = ""
                Dim strMessage As String = ""

                Dim objHtmlInputFile As System.Web.UI.HtmlControls.HtmlInputFile
                Dim intItem As Integer

                'Get localized Strings
                Dim strInvalid As String = Services.Localization.Localization.GetString("InvalidExt", Me.LocalResourceFile)

                For intItem = 0 To arrFiles.Count - 1
                    objHtmlInputFile = CType(arrFiles(intItem), HtmlInputFile)

                    strFileName = System.IO.Path.GetFileName(objHtmlInputFile.PostedFile.FileName)
                    strExtension = Path.GetExtension(strFileName)

                    Select Case CType(arrTypes(intItem), UploadType)
                        Case UploadType.File        ' content files
                            strMessage += UploadFile(RootFolder & ddlFolders.SelectedItem.Value.Replace("/", "\"), objHtmlInputFile.PostedFile, chkUnzip.Checked)
                        Case UploadType.Skin        ' skin package
                            If strExtension.ToLower = ".zip" Then
                                Dim objSkins As New DotNetNuke.UI.Skins.SkinController
                                Dim objSkin As DotNetNuke.UI.Skins.SkinInfo
                                Dim objLbl As New Label
                                objLbl.CssClass = "Normal"
                                objLbl.Text = objSkins.UploadSkin(RootFolder, objSkin.RootSkin, Path.GetFileNameWithoutExtension(objHtmlInputFile.PostedFile.FileName), objHtmlInputFile.PostedFile.InputStream)
                                phPaLogs.Controls.Add(objLbl)
                            Else
                                strMessage += strInvalid & " " & FileTypeName & " " & strFileName
                            End If
                        Case UploadType.Container        ' container package
                            If strExtension.ToLower = ".zip" Then
                                Dim objSkins As New DotNetNuke.UI.Skins.SkinController
                                Dim objSkin As DotNetNuke.UI.Skins.SkinInfo
                                Dim objLbl As New Label
                                objLbl.CssClass = "Normal"
                                objLbl.Text = objSkins.UploadSkin(RootFolder, objSkin.RootContainer, Path.GetFileNameWithoutExtension(objHtmlInputFile.PostedFile.FileName), objHtmlInputFile.PostedFile.InputStream)
                                phPaLogs.Controls.Add(objLbl)
                            Else
                                strMessage += strInvalid & " " & FileTypeName & " " & strFileName
                            End If
                        Case UploadType.Module        ' custom module
                            If strExtension.ToLower = ".zip" Then
                                phPaLogs.Visible = True
                                Dim pa As New DotNetNuke.Modules.Admin.ResourceInstaller.PaInstaller(CType(objHtmlInputFile.PostedFile.InputStream, Stream), Request.MapPath("."))

                                pa.Install()

                                phPaLogs.Controls.Add(pa.InstallerInfo.Log.GetLogsTable)
                            Else
                                strMessage += strInvalid & " " & FileTypeName & " " & strFileName
                            End If
                        Case UploadType.LanguagePack
                            If strExtension.ToLower = ".zip" Then
                                Dim objLangPack As New DotNetNuke.Services.Localization.LocaleFilePackReader

                                phPaLogs.Controls.Add(objLangPack.Install(objHtmlInputFile.PostedFile.InputStream).GetLogsTable)
                            Else
                                strMessage += strInvalid & " " & FileTypeName & " " & strFileName
                            End If

                    End Select
                Next

                If phPaLogs.Controls.Count > 0 Then
                    tblUpload.Visible = False
                    tblLogs.Visible = True
                ElseIf strMessage = "" Then
                    Response.Redirect(ReturnURL(), True)
                Else
                    lblMessage.Text = strMessage
                End If

            Catch exc As Exception    'Module failed to load
                ProcessModuleLoadException(Me, exc)
            End Try
        End Sub

#End Region

#Region " Web Form Designer Generated Code "

        'This call is required by the Web Form Designer.
        <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()

        End Sub

        Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
            'CODEGEN: This method call is required by the Web Form Designer
            'Do not modify it using the code editor.
            InitializeComponent()
        End Sub

#End Region

    End Class

End Namespace

 


  
  21 Jun 2005, 10:54 AM
Debbie is not online. Last active: 2/18/2007 6:20:31 PM Debbie

Top 10 Posts
Joined on 12-16-2004
Posts 460

SoftArtisans Technical Services

Support team
Re: me.context on a control
Good heavens, this is too much to wade through. Can you provide some narration? Here are my concerns.

1. How did you get past the instantiation issue? Can you let us all know in case another DotNetNuke user encounters the same difficulty?

2. Your form element doesn't look like the traditional .net form that is set to post back to itself like the one in my example. Can you explain how your form posts the file to your fileup code?

3. Are you sure the files actually *are* making it to the sever? Can you check your XFile debug log to make sure they are being sent correctly? Also you might want to see if the files are in the request by using this:

Request.SaveAs("c:\Save Here\MyRequestSaved.txt", True)
Response.End()

4. If you loop through the form collection and write out all the item names, are they as you expect?


  
  21 Jun 2005, 3:43 PM
sconard is not online. Last active: 5/29/2013 11:36:10 AM sconard

Top 10 Posts
Joined on 01-11-2005
Posts 53
Re: me.context on a control

1. I wish I knew how I got past the instantiation issue.  The only change between the run with the error and all subsequent runs was a close and open of the dev environment.  I cannot recreate the error.  This does not bode well for stability.

2. An excellent point.  I am still looking into this.

3. I dont know where the xfile debug log is but the following is the form data
-----------------------------7d5221be20234
Content-Disposition: form-data; name="__EVENTTARGET"


-----------------------------7d5221be20234
Content-Disposition: form-data; name="__EVENTARGUMENT"


-----------------------------7d5221be20234
Content-Disposition: form-data; name="dnn:IconBar.ascxSurpriseptModuleType"

0
-----------------------------7d5221be20234
Content-Disposition: form-data; name="dnn:IconBar.ascx:cboDesktopModules"

-1
-----------------------------7d5221be20234
Content-Disposition: form-data; name="dnn:IconBar.ascx:cboPanes"

ContentPane
-----------------------------7d5221be20234
Content-Disposition: form-data; name="dnn:IconBar.ascx:txtTitle"


-----------------------------7d5221be20234
Content-Disposition: form-data; name="dnn:IconBar.ascx:cboPosition"

-1
-----------------------------7d5221be20234
Content-Disposition: form-data; name="dnn:IconBar.ascx:cboPermission"

0
-----------------------------7d5221be20234
Content-Disposition: form-data; name="dnn:IconBar.ascx:cboAlign"

left
-----------------------------7d5221be20234
Content-Disposition: form-data; name="dnnBig SmilennSEARCH:txtSearch"


-----------------------------7d5221be20234
Content-Disposition: form-data; name="UploadBtn"

Start Upload
-----------------------------7d5221be20234
Content-Disposition: form-data; name="dnn:ctr365:webUploadBig SmiledlFolders"


-----------------------------7d5221be20234
Content-Disposition: form-data; name="ScrollTop"


-----------------------------7d5221be20234
Content-Disposition: form-data; name="__dnnVariable"


-----------------------------7d5221be20234
Content-Disposition: form-data; name="__VIEWSTATE"

dDwtMzA0NTM5ODcxO3Q8O2w8aTwzPjs+O2w8dDw7bDxpPDE+Oz47...

(missing the file)

4. Yes all form item names are as expected.

The following is the abbreviated version:

I am trying to use the SA XFile/FileUp object in a dnn module.  After postback the fileup object has all form values but the file itself. 

______form tag from view source of module webUpload.ascx
<form name="Form" method="post" enctype="multipart/form-data" style="height:100%;" action="/sPort/FileManager/tabid/52/ctl/Edit/mid/364/ftype/File/Default.aspx" id="Form">

______object from view source of module webUpload.ascx

    <OBJECT id="AXFFile" classid="CLSID:230C3D02-DA27-11D2-8612-00A0C93EEA3C"
height = "200"
codebase = "saxfile.cab"
Style = "HEIGHT: 200px; LEFT: 0px; TOP: 0px; WIDTH: 400px"
width="400">
<PARAM NAME="_cx" VALUE="10583">
<PARAM NAME="_cy" VALUE="5292">
<PARAM NAME="Appearance" VALUE="0">
<PARAM NAME="BackColor" VALUE="16777215">
<PARAM NAME="BackStyle" VALUE="0">
<PARAM NAME="BorderColor" VALUE="3452816845">
<PARAM NAME="BorderStyle" VALUE="0">
<PARAM NAME="Enabled" VALUE="-1">
<PARAM NAME="ForeColor" VALUE="0">
<PARAM NAME="TabStop" VALUE="-1">
</OBJECT>
<INPUT TYPE="SUBMIT" name="UploadBtn" VALUE="Start Upload">
<script language="javascript">
var XFile = document.all("AXFFile").XFRequest;
XFile.TimeOut = 3600;
XFile.Server = "localhost";
XFile.ObjectName = "/sPortDev/DesktopModules/wrallp.fileManager/webUpload.ascx";
if (XFile.FormElements.Count > 1)XFile.FormElements.RemoveAll;
</script>

___________iterator loop (webUpload.ascx code behind) where all form values are found and named correctly but file is never found

                   Dim iterator As SaUploadDictionaryEnum
                    iterator = CType(oFileUp.Form.GetEnumerator(), SaUploadDictionaryEnum)

                    Dim oFile As SaFile
                    Dim strResponse As String
                    Dim strUpload As String
                    Dim strElements As String

                    strUpload = "<b>File(s) Uploaded</b><br/><hr noshade size=""1""/>"
                    strElements = "<b>Form Elements</b><br/><hr noshade size=""1""/>"


                    While iterator.MoveNext()
                        'Loop through form collection.
                        'Files must be handled by FileUp
                        'Other controls are handled in usual manner (see: Else statment)
                        If TypeOf oFileUp.Form(iterator.Current) Is SaFile Then

                            oFile = CType(oFileUp.Form(iterator.Current), SaFile)

                            'It's a file input control, but was there a file?
                            'Calling Save on a non-existent file will throw an error.
                            If Not oFile.IsEmpty Then

                                oFile.Save()

                                Dim ShortFilename As String
                                Dim ContentType As String
                                Dim TotalBytes As UInt64
                                Dim ServerName As String
                                Dim Comment As String

                                ShortFilename = oFile.ShortFilename
                                ContentType = oFile.ContentType
                                TotalBytes = oFile.TotalBytes
                                ServerName = oFile.ServerName
                                '--Comment = tbComment.Text

                                strUpload += "<i>Name</i>: " & ShortFilename & "<br/>" & vbCrLf
                                strUpload += "<i>Content</i>: " & ContentType & "<br/>" & vbCrLf
                                strUpload += "<i>Size</i>: " & TotalBytes.ToString() & " Bytes.<br/>" & vbCrLf
                                strUpload += "<i>Location on Server</i>: " & ServerName & "<br/>" & vbCrLf
                                strUpload += "<br/>"

                            End If

                        Else    'Its a Form Element, handle it as a string, not a file.
                            strElements += iterator.Current & ": "
                            strElements += CType(oFileUp.Form(iterator.Current), String)
                            strElements += "<br/>"

                        End If

                    End While

_______________from the above code (webUpload.ascx code behind)  the following line is never true

                      If TypeOf oFileUp.Form(iterator.Current) Is SaFile Then


Thank you for your assistance


  
  22 Jun 2005, 4:29 PM
Debbie is not online. Last active: 2/18/2007 6:20:31 PM Debbie

Top 10 Posts
Joined on 12-16-2004
Posts 460

SoftArtisans Technical Services

Support team
Re: me.context on a control
Hey Steve, 
   You know what I'm thinking.... It looks like you are using a classic "submit" button on your form...so your form is sending all of the form elements, but Xfile holds all of the files - so they aren't being sent along. XFile is not part of the form collection. In other words it appears as if you are having the browser submit the form,when what you need to do is the reverse. You need to have XFile submit the form *with the file collection*. This is usually done by using a normal button and launching a function from it's "onclick" event that will instantiate XFile in script, loop through the form collection, add it to XFile's form collection, pick up all the form elements and send them with the file as a properly formatted http post. Can you confirm that you understand what I'm describing and that this might be what is happening? This is an important concept to be clear on, so please let me know if I loose you on this.
    

-Debbie

  
  23 Jun 2005, 8:43 AM
sconard is not online. Last active: 5/29/2013 11:36:10 AM sconard

Top 10 Posts
Joined on 01-11-2005
Posts 53
Re: me.context on a control

Thanks for your response.  I tried your suggestion in the form of the below code.  The while loop does not pass through one iteration since there seems to be nothing enumerated by the iterator. 

_________the page
<asp:linkbutton id="cmdUploadStart" runat="server" cssclass="CommandButton" resourcekey="cmdUploadStart">Upload Start</asp:linkbutton>
_________code behind
       Private Sub cmdUploadStart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdUploadStart.Click
            Try

                Dim oFileUp As New FileUp(Me.Context)
                oFileUp.Path = "C:\temp\scratchTest"

                Dim iterator As SaUploadDictionaryEnum
                iterator = CType(oFileUp.Form.GetEnumerator(), SaUploadDictionaryEnum)

                Dim oFile As SaFile
                Dim strResponse As String
                Dim strUpload As String
                Dim strElements As String

                strUpload = "<b>File(s) Uploaded</b><br/><hr noshade size=""1""/>"
                strElements = "<b>Form Elements</b><br/><hr noshade size=""1""/>"


                While iterator.MoveNext()
                    'Loop through form collection.
                    'Files must be handled by FileUp
                    'Other controls are handled in usual manner (see: Else statment)
                    'Request.SaveAs("C:\temp\scratchTest\myFile.txt", True)
                    If TypeOf oFileUp.Form(iterator.Current) Is SaFile Then

                        oFile = CType(oFileUp.Form(iterator.Current), SaFile)

                        'It's a file input control, but was there a file?
                        'Calling Save on a non-existent file will throw an error.
                        If Not oFile.IsEmpty Then

                            oFile.Save()

                            Dim ShortFilename As String
                            Dim ContentType As String
                            Dim TotalBytes As UInt64
                            Dim ServerName As String
                            Dim Comment As String

                            ShortFilename = oFile.ShortFilename
                            ContentType = oFile.ContentType
                            TotalBytes = oFile.TotalBytes
                            ServerName = oFile.ServerName
                            '--Comment = tbComment.Text

                            strUpload += "<i>Name</i>: " & ShortFilename & "<br/>" & vbCrLf
                            strUpload += "<i>Content</i>: " & ContentType & "<br/>" & vbCrLf
                            strUpload += "<i>Size</i>: " & TotalBytes.ToString() & " Bytes.<br/>" & vbCrLf
                            strUpload += "<i>Location on Server</i>: " & ServerName & "<br/>" & vbCrLf
                            strUpload += "<br/>"

                        End If

                    Else    'Its a Form Element, handle it as a string, not a file.
                        strElements += iterator.Current & ": "
                        strElements += CType(oFileUp.Form(iterator.Current), String)
                        strElements += "<br/>"

                    End If

                End While

                strResponse = strUpload & strElements & "<BR><A href='http://localhost/XFileDotNetSample/XFileWebForm.aspx'>Click here to upload again.</a>"

                'lblResponse.Text = strResponse
                'MyTextBox.Visible = False


            Catch exc As Exception    'Module failed to load
                ProcessModuleLoadException(Me, exc)
            End Try

        End Sub


  
  23 Jun 2005, 11:45 AM
Debbie is not online. Last active: 2/18/2007 6:20:31 PM Debbie

Top 10 Posts
Joined on 12-16-2004
Posts 460

SoftArtisans Technical Services

Support team
Re: me.context on a control

What does your Xfile code look like now that you've implemented the  change I suggested?
BTW, the XFile logs would be very useful also. Please implement debug logging too:

http://support.softartisans.com/docs/XFile/Webhelp/prog_ref_xfrequest_debuglevel.htm


  
 Page 1 of 2 (20 items) 1 2 »
SoftArtisans Forums » SoftArtisans Products » FileUp » Re: me.context on a control