Как получить количество отправленных файлов из каждого входного файла - PullRequest
0 голосов
/ 13 июля 2020

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

вот код html

   <input  type="file" id="myFile" name="myFile"   multiple="multiple" />
   <input  type="file" id="myFile2" name="myFile2"   multiple="multiple" />
                               

, и я обрабатываю процесс загрузки с помощью asp. net элемента управления кнопки веб-формы следующим образом

protected void btnUploadClick(object sender, EventArgs e)
        {

            DataTable dt = new DataTable();
            dt.Columns.Add("Id", typeof(int));
            dt.Columns.Add("Bytes", typeof(byte[]));
            dt.Columns.Add("ImgNames", typeof(string));
            dt.Columns.Add("ImgType", typeof(string));
            dt.Columns.Add("Member", typeof(int));

           // int firstFilesCount = Request.Files["myFile"].count; unable to do this 
            // int secondFilesCount = Request.Files["myFile2"].count; unable to do this so i need to 
              //get the count of files submitted by each input file

            
            for (int i = 0; i < Request.Files.Count; i++)
            {
                if (Request.Files[i] != null && Request.Files[i].ContentLength > 0)
                {

                    string fType = Request.Files[i].ContentType.Split('/')[1];
                    string fName = Path.GetFileName(Request.Files[i].FileName);
                    byte[] bytes = new BinaryReader(Request.Files[i].InputStream).ReadBytes(Request.Files[i].ContentLength);
                    dt.Rows.Add(Convert.ToInt32(hfAppID.Value), bytes, fName,
                        fType, Convert.ToInt32(ViewState["memberId"]));
                }
            }
             string outputStr = UpdateAttach()
}

Ответы [ 2 ]

1 голос
/ 13 июля 2020

Я не уверен на 100% в этом ответе, но похоже, что Request.Files может быть списком всех файлов, независимо от того, откуда они поступили. Если вы используете элемент управления asp: FileUpload вместо простого ввода, вы можете получить доступ к каждому вводу на стороне сервера и сможете использовать myFile.PostedFiles.Count и myFile2.PostedFiles.Count для получения количества файлов в каждый.

0 голосов
/ 15 июля 2020

Наконец, я могу определить, какой файл исходит из какого ввода, используя приведенный ниже код

var v = Request.Files.Keys;

, это вернет идентификаторы входных файлов, которые я использовал на своей странице для отправки, чтобы я мог повторять через каждый входной файл с помощью foreach l oop, как показано ниже

 foreach (string key in Request.Files)
            {
             //processing
            }
...