Member 12183079 Ответов: 1

Как загрузить несколько файлов multi ASP file upload control on submit single button


public void FileUpload1()
    {
        if (flpProspectus.HasFile)
        {

            string fileExtension = System.IO.Path.GetExtension(flpProspectus.FileName);
            int fileSize = flpProspectus.PostedFile.ContentLength;
            HttpFileCollection hfc = Request.Files;             
            {
                string[] arr = new string[5];

                for (int i = 0; i < hfc.Count; i++)
                {
                    if (hfc.GetKey(i) == "ctl00$ContentPlaceHolder1$flpProspectus")
                    {
                        HttpPostedFile hpf = hfc[i];
                        if (hpf.ContentLength > 0)
                        {
                            hpf.SaveAs(Server.MapPath("~/College/fileupload3/") + System.IO.Path.GetFileName(hpf.FileName));
                           string filepath = Server.MapPath("~/College/fileupload3/");
                           string pathx = "~/College/fileupload3/" + hpf.FileName;
                            if (i < 5)
                            {
                                arr[i] = pathx;
                                path1 = arr[0]; path2 = arr[1]; path3 = arr[2]; path4 = arr[3]; path5 = arr[4];

                            }

                        }
                    }
                }
            }
        }      
    }

    public void FileUpload2()
    {
        if (flpOrientation.HasFile)
        {
            string fileExtension = System.IO.Path.GetExtension(flpOrientation.FileName);
            int fileSize = flpOrientation.PostedFile.ContentLength;
            HttpFileCollection hfc = Request.Files;
            string[] arr = new string[5];
            for (int i = 0; i < hfc.Count; i++)
            {
                if (hfc.GetKey(i) == "ctl00$ContentPlaceHolder1$flpOrientation")
                {
                    HttpPostedFile hpf = hfc[i];
                    if (hpf.ContentLength > 0)
                    {
                        hpf.SaveAs(Server.MapPath("~/College/fileupload4/") + System.IO.Path.GetFileName(hpf.FileName));
                        string filepath = Server.MapPath("~/College/fileupload4/");
                        string pathy = "fileupload4/" + hpf.FileName;
                        if (i < 5)
                        {
                            arr[i] = pathy;
                            path6 = arr[0]; path7 = arr[1]; path8 = arr[2]; path9 = arr[3]; path10 = arr[4];

                        }

                    }
                }
            }
        }
    }
    public void FileUpload3()
    {
        if (flpEnquiry.HasFile)
        {
            string fileExtension = System.IO.Path.GetExtension(flpEnquiry.FileName);
            int fileSize = flpEnquiry.PostedFile.ContentLength;
            HttpFileCollection hfc = Request.Files;
            string[] arr = new string[5];
            for (int i = 0; i < hfc.Count; i++)
            {
                if (hfc.GetKey(i) == "ctl00$ContentPlaceHolder1$flpEnquiry")
                {
                    HttpPostedFile hpf = hfc[i];
                    if (hpf.ContentLength > 0)
                    {
                        hpf.SaveAs(Server.MapPath("~/College/fileupload5/") + System.IO.Path.GetFileName(hpf.FileName));
                        string filepath = Server.MapPath("~/College/fileupload5/");
                        string path = "fileupload5/" + hpf.FileName;
                        if (i < 5)
                        {
                            arr[i] = path;
                            path11 = arr[0]; path12 = arr[1]; path13 = arr[2]; path14 = arr[3]; path15 = arr[4];
                        }
                    }

                }
            }
        }

    }
    public void FileUpload4()
    {
        if (flpPunishment.HasFile)
        {
            string fileExtension = System.IO.Path.GetExtension(flpPunishment.FileName);
            int fileSize = flpPunishment.PostedFile.ContentLength;
            HttpFileCollection hfc = Request.Files;
            string[] arr = new string[5];
            for (int i = 0; i < hfc.Count; i++)
            {
                if (hfc.GetKey(i) == "ctl00$ContentPlaceHolder1$flpPunishment")
                {
                    HttpPostedFile hpf = hfc[i];
                    if (hpf.ContentLength > 0)
                    {
                        hpf.SaveAs(Server.MapPath("~/College/fileupload6/") + System.IO.Path.GetFileName(hpf.FileName));
                        string filepath = Server.MapPath("~/College/fileupload6/");
                        string path = "fileupload6/" + hpf.FileName;
                        if (i < 5)
                        {
                            arr[i] = path;
                            path16 = arr[0]; path17 = arr[1]; path18 = arr[2]; path19 = arr[3]; path20 = arr[4];
                        }
                    }

                }
            }
        }

    }
    public void FileUpload5()
    {
        if (flpnooffir.HasFile)
        {
            string fileExtension = System.IO.Path.GetExtension(flpnooffir.FileName);
            int fileSize = flpnooffir.PostedFile.ContentLength;
            HttpFileCollection hfc = Request.Files;
            string[] arr = new string[9];
            for (int i = 0; i < hfc.Count; i++)
            {
                if (hfc.GetKey(i) == "ctl00$ContentPlaceHolder1$flpnooffir")
                {
                    HttpPostedFile hpf = hfc[i];
                    if (hpf.ContentLength > 0)
                    {
                        hpf.SaveAs(Server.MapPath("~/College/fileupload7/") + System.IO.Path.GetFileName(hpf.FileName));
                        string filepath = Server.MapPath("~/College/fileupload7/");
                        string path = "fileupload7/" + hpf.FileName;
                        if (i < 5)
                        {
                            arr[i] = path;
                            path21 = arr[0]; path22 = arr[1]; path23 = arr[2]; path24 = arr[3]; path25 = arr[4];

                        }
                    }
                }
            }
        }

    }


Что я уже пробовал:

Выше я публикую вам свой код я использую многократную загрузку файлов я сталкиваюсь с проблемой
когда я выбираю файл для первого ASP control id-flpProspectus, он работает нормально
но когда я выбираю файл для второго ASP control id-flpOrientation, он не работает должным образом, я использую цикл foreach, но не работает

так что, пожалуйста, помогите мне

Member 12183079

пожалуйста, ответьте кому-нибудь

Karthik_Mahalingam

что значит "он не работает должным образом"
какая-нибудь ошибка ?
почему бы вам не вызвать все 5 функций в событии нажатия кнопки

Bryian Tan

Я думал, мы решили это в прошлый раз. Есть ли новое требование?

Как загрузить несколько файлов с помощью нескольких элементов управления fileupload в ASP.NET?[^]

Member 12183079

Уважаемый господин
я использую 5 элементов управления загрузкой файлов в одном щелчке кнопки для пути к хранилищу в базе данных
в прошлый раз он работал но теперь я не знаю почему он не работает я не получал никаких ошибок

вы знаете, что сэр, я получаю проблему, когда он вызывает вторую функцию FileUpload(2)
затем он получает в allkey value =hfc. AllKeys[0x00000001]= " ctl00$ContentPlaceHolder1$flpOrientation"
но я получаю i=0x00000000, так что он не входит в цикл в первый раз, во второй раз он находит 0x00000001, а затем он входит в цикл

то есть я сталкиваюсь с проблемой так любезно плз Хель меня

1 Ответов

Рейтинг:
4

Bryian Tan

Я думаю, что это лучший способ сделать это. Не знаю, почему ваш код отображает 0x000000001 в функции hfc. GetKey (i), вам нужно это исследовать.

public class FileUploadList
        {
            public  int Position { get; set; }
            public string ControlId { get; set; }
            public string filePath { get; set; }
        }

        string path1, path2, path3, path4, path5, path6, path7, path8, path9, path10, path11, path12, path13, path14, path15,path16, path17, path18, path19, path20, path21, path22, path23, path24, path25 = null;

        /// <summary>
        /// save the file into folder and set the path
        /// </summary>
        /// <param name="hfc"></param>
        /// <param name="lstFile"></param>
        internal void FileUploadHelper(HttpFileCollection hfc, List<FileUploadList> lstFile)
        {
            if (lstFile.Count > 0 )
            {
                string fileExtension = string.Empty; 
                int fileSize = 0;
                int arrPos = 0;
                string[] arr = new string[5];

                foreach (FileUploadList file in lstFile)
                {
                    string filePath = file.filePath;

                    fileExtension = System.IO.Path.GetExtension(hfc[file.Position].FileName);
                    fileSize = hfc[file.Position].ContentLength;
                    if (hfc[file.Position].ContentLength > 0)
                    {
                        hfc[file.Position].SaveAs(Server.MapPath(string.Format("~/{0}/", filePath)) + System.IO.Path.GetFileName(hfc[file.Position].FileName));
                        string filepath = Server.MapPath(string.Format("~/{0}/", filePath));
                        string path = string.Format("{0}/{1}", filePath, System.IO.Path.GetFileName(hfc[file.Position].FileName));

                        arr[arrPos] = path;
                        arrPos++;
                    }
                }

                switch (lstFile.FirstOrDefault().ControlId)
                {
                    case "flpProspectus":
                        path1 = arr[0]; path2 = arr[1]; path3 = arr[2]; path4 = arr[3]; path5 = arr[4];
                        break;
                    case "flpOrientation":
                        path6 = arr[0]; path7 = arr[1]; path8 = arr[2]; path9 = arr[3]; path10 = arr[4];
                        break;
                    case "flpEnquiry":
                        path11 = arr[0]; path12 = arr[1]; path13 = arr[2]; path14 = arr[3]; path15 = arr[4];
                        break;
                    case "flpPunishment":
                        path16 = arr[0]; path17 = arr[1]; path18 = arr[2]; path19 = arr[3]; path20 = arr[4];
                        break;
                    case "flpnooffir":
                        path21 = arr[0]; path22 = arr[1]; path23 = arr[2]; path24 = arr[3]; path25 = arr[4];
                        break;
                }
            }
        }

        /// <summary>
        /// group the control in a List
        /// </summary>
        public void FileUploads()
        {
            if (flpProspectus.HasFile || flpOrientation.HasFile || flpEnquiry.HasFile || flpPunishment.HasFile || flpnooffir.HasFile)
            {
                HttpFileCollection hfc = Request.Files;

                List<FileUploadList> lstFile = new List<FileUploadList>();

                string filePath = string.Empty;

                for (int i = 0; i < hfc.Count; i++)
                {
                    FileUploadList ful = new FileUploadList();

                    if (hfc[i].ContentLength > 0)
                    {
                        if (hfc.GetKey(i).Contains(flpOrientation.ID))
                        {
                            ful.Position = i;
                            ful.ControlId = flpOrientation.ID;
                            ful.filePath = "college/fileupload3";
                        }

                        if (hfc.GetKey(i).Contains(flpProspectus.ID))
                        {
                            ful.Position = i;
                            ful.ControlId = flpProspectus.ID;
                            ful.filePath = "college/fileupload4";
                        }

                        if (hfc.GetKey(i).Contains(flpEnquiry.ID))
                        {
                            ful.Position = i;
                            ful.ControlId = flpEnquiry.ID;
                            ful.filePath = "college/fileupload5";
                        }

                        if (hfc.GetKey(i).Contains(flpPunishment.ID))
                        {
                            ful.Position = i;
                            ful.ControlId = flpPunishment.ID;
                            ful.filePath = "college/fileupload6";
                        }

                        if (hfc.GetKey(i).Contains(flpnooffir.ID))
                        {
                            ful.Position = i;
                            ful.ControlId = flpnooffir.ID;
                            ful.filePath = "college/fileupload7";
                        }

                        lstFile.Add(ful);
                    }
                }

                FileUploadHelper(hfc, lstFile.Where(w => w.ControlId == flpOrientation.ID).ToList());
                FileUploadHelper(hfc, lstFile.Where(w => w.ControlId == flpProspectus.ID).ToList());
                FileUploadHelper(hfc, lstFile.Where(w => w.ControlId == flpEnquiry.ID).ToList());
                FileUploadHelper(hfc, lstFile.Where(w => w.ControlId == flpPunishment.ID).ToList());
                FileUploadHelper(hfc, lstFile.Where(w => w.ControlId == flpnooffir.ID).ToList());

            }
        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            FileUploads();
        }


Member 12183079

спасибо