4

I'm working in tiny project that deal with multiple file uploading.

at the begining user have one fileupload control and a small image called fileuploadadder .

each time user click on fileuploadadder , a clone of the first fileupload control added to the page with jquery . the ids of the fileupload controls are uniqe. such as file1 , file2, ...

now , i want when user clicks on a button at the end of the page asp.net uploads the selected files.

tnx

1 Answer 1

4

Here's an example:

<%@ Page Language="C#" %>
<%@ Import Namespace="System.IO" %>
<script type="text/c#" runat="server">
    protected void BtnUpload_Click(object sender, EventArgs e)
    {
        if (Request.Files != null)
        {
            foreach (string file in Request.Files)
            {
                var uploadedFile = Request.Files[file];
                if (uploadedFile.ContentLength > 0)
                {
                    var appData = Server.MapPath("~/app_data");
                    var fileName = Path.GetFileName(uploadedFile.FileName);
                    uploadedFile.SaveAs(Path.Combine(appData, fileName));
                }
            }
        }
    }
</script>
<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
    <form id="Form1" runat="server" enctype="multipart/form-data">
        <a href="#" id="add">Add file</a>
        <div id="files"></div>
        <asp:LinkButton ID="BtnUpload" runat="server" Text="Upload" OnClick="BtnUpload_Click" />
    </form>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
    <script type="text/javascript">
        $('#add').click(function () {
            $('#files').append($('<input/>', {
                type: 'file',
                name: 'file' + new Date().getTime()
            }));
            return false;
        });
    </script>
</body>
</html>
Sign up to request clarification or add additional context in comments.

6 Comments

App_data folder should not be used to upload such files, because this is a special folder reserved for data such as database files.
@Muhammad Akhtar, it's just an example. And there's nothing bad of using the App_Data folder for storing uploaded files as shown by Phil Haack: haacked.com/archive/2010/07/16/…. It is not reserved exclusively for database.
hmm, but I have a problem using this folder before 2 years ago when I was working. I have post the issue on StackOverflow. Please check this stackoverflow.com/questions/1519790/…
@Muhammad Akhtar, the problem you had is that you was trying to serve files from this folder directly to the client. This of course is not possible as files from this folder are not served by ASP.NET. What I usually do is to use a HTTP handler to serve uploaded files from this folder. This allows me to control which user access which file.
hmm right. thanks for clarification. Can you give me an reference link for just my personal understanding?
|

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.