读取流后,我无法从fileupload保存文件

时间:2018-11-06 09:24:06

标签: c# asp.net file-upload

我有一个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()]的所有Stream有关(如果我没有,我就没有问题)

1 个答案:

答案 0 :(得分:1)

请尝试将using块之后的所有代码移入该块中。当您退出using时,StreamReader会被处置,它也可能会处置并关闭InputStream,因此您什么也不会保存到文件中。