We help IT Professionals succeed at work.

vb.net upload multiple files script, duplicates all files

Wayne Barron
Wayne Barron asked
on
278 Views
Last Modified: 2017-04-13
Hello All;

I have the following code, of which uploads multiple files at one time.
The issue is this.

I am renaming the files to the current date/time format.ext ......
With this renaming, it is naming the files appropriately, but it is duplicating the files in the upload folder.

Could someone please, take a look at this code, and let me know what is going on with it?

Thank You
Carrzkiss

Upload Form.
<asp:FileUpload ID="filMyFile" runat="server" AllowMultiple="true" />
<asp:Button ID="btnUpload" Text="Upload" runat="server" OnClick ="UploadMultipleFiles" accept ="image/gif, image/jpeg" />
<hr />
<asp:Label ID="lblSuccess" runat="server" ForeColor ="Green" />

Open in new window


CodeBehind
Imports System.IO

Partial Class _Default
    Inherits Page



    ' We are going to Add in a Global Class, this will hold ALL the variables that need to be used through the script.
    Public Class GlobalVariables
        Public Shared getfile As String
    End Class


    Protected Sub UploadMultipleFiles(sender As Object, e As EventArgs) Handles btnUpload.Click
        For Each postedFile As HttpPostedFile In filMyFile.PostedFiles


            ' We are going to rename the file, so it is NOT a long file name.
            ' This will give the following format: 02191971115523 (February 19 1971 11:55:23 + milliseconds)
            Dim getTime As String = Now.ToString("MM") + Now.ToString("dd") + Now.ToString("yyyy") + Now.ToString("hh") + Now.ToString("mm") + Now.ToString("ss") + Now.ToString("fff")
            GlobalVariables.getfile = getTime

            'save the file
            Dim savepath As String = ""
            savepath = Context.Server.MapPath("Files") '+ Artist_Name/Album_Name (This will be added later on)
            If Not Directory.Exists(savepath) Then
                Directory.CreateDirectory(savepath)
            End If

            ' We are going to get the Extention of the MP3, just so we can make sure that it is prefixed onto the file.
            Dim extension As String = Path.GetExtension(filMyFile.PostedFile.FileName)

            ' This is where we will save the file. This is where the magic happens.
            filMyFile.PostedFile.SaveAs(Convert.ToString(savepath & "\") + Convert.ToString(GlobalVariables.getfile) & extension)

        Next
        '  End If
        lblSuccess.Text = String.Format("{0} files have been uploaded successfully.", filMyFile.PostedFiles.Count)
        '  End If
    End Sub
End Class

Open in new window

Comment
Watch Question

Nitin SontakkeDeveloper
CERTIFIED EXPERT
Commented:
This problem has been solved!
(Unlock this solution with a 7-day Free Trial)
UNLOCK SOLUTION
Nitin SontakkeDeveloper
CERTIFIED EXPERT

Commented:
I didn't understand the assignment to GlobalVariables and then taking it back from there. I suggest don't do it unless ABSOLUTELY necessary, I cannot see the reason.
Wayne BarronAuthor, Web Developer
CERTIFIED EXPERT
Top Expert 2009

Author

Commented:
When the file is uploaded to the server, it is duplicated.
All you have to do is make a new "Website" and run this code, and you will see.

As for the GlobalVariable, it is was supposed to be removed.
As it was not needed in this project. Just did not get it out of the example.
Wayne BarronAuthor, Web Developer
CERTIFIED EXPERT
Top Expert 2009

Author

Commented:
Good idea on the (give hour in 24H)
Author, Web Developer
CERTIFIED EXPERT
Top Expert 2009
Commented:
This problem has been solved!
(Unlock this solution with a 7-day Free Trial)
UNLOCK SOLUTION
Wayne BarronAuthor, Web Developer
CERTIFIED EXPERT
Top Expert 2009

Author

Commented:
Fixed it.
However, I am giving Nitin the points for the HH thing.
Best to have 24 instead of 12.

All is good.
Wayne