После чтения потока я не могу сохранить файл из файла загрузки - PullRequest
0 голосов
/ 06 ноября 2018

У меня есть элемент управления FileUpload, и когда я нажимаю кнопку, я хочу сохранить файл FileUpload в файл на сервере.

Я проверяю, получаю ли я файл из FileUpload с данными, но когда я пытаюсь сохранить его на сервере, созданный файл становится пустым. Что я делаю не так?

В начале у меня были панели обновления, но сейчас нет панели обновления.

                string string1, string2, string3;
                bool bool1= false, bool2= false, bool3= false;

                using (StreamReader reader = new StreamReader(fuSubirPlantilla.PostedFile.InputStream))
                {
                    string contenidoPlantilla = reader.ReadToEnd();
                    bool1= contenidoPlantilla.Contains("[tag1]");
                    bool2= contenidoPlantilla.Contains("[tag2]");
                    bool3= contenidoPlantilla.Contains("[tag3]");
                }

                if (bool1 && bool2 && bool3)
                {
                    string1 = dropdown1.SelectedValue;
                    string2 = dropdown2.SelectedValue;
                    string3 = dropdown3.SelectedValue;

                    string filename= "filename1_" + string1 + "_" + string2 + "_" + string3 + ".html";

                    string folder = Server.MapPath( "~/XML_MI/Common/").Replace("/", "\\");
                    // Me aseguro de que termine en \\
                    folder = folder.EndsWith("\\") ? folder : folder + "\\";
                    // Antes de guardar el archivo
                    string folderFilePath = $"{folder}{filename}";
                    fuSubirPlantilla.SaveAs(folderFilePath);
                    //Stream stream = fuSubirPlantilla.PostedFile.InputStream;
                    //using (FileStream fileStream = File.Create(folderFilePath))
                    //{
                    //    stream.CopyTo(fileStream);
                    //}
                }
                else
                {
                    // Error
                }

Я пробовал, как вы видите, другой подход, но он все еще не работает

                    using (FileStream fileStream = File.Create(folderFilePath))
                    {
                        stream.CopyTo(fileStream);
                    }

Проблема связана с тем, что я читаю весь поток в начале [ reader.ReadToEnd () ] (Если у меня нет, проблема не возникает)

1 Ответ

0 голосов
/ 06 ноября 2018

Пожалуйста, попробуйте переместить весь ваш код, который сейчас идет после блока using внутри блока. Когда вы выходите из using, StreamReader удаляется, и он также может располагать и закрывать InputStream, таким образом, вы ничего не сохраняете в файл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...