ASP.NET FileUpload多文件上传仅生成一个新文件的问题求助
多文件上传仅生成一个新文件的修复方案
问题根源:
你当前的代码存在两个关键问题:
- 仅获取并保存了第一个上传的文件,后续上传的文件未执行保存操作
filePath变量基于第一个文件的路径生成,循环中每次都用这个固定路径拼接新文件名,导致所有迭代都覆盖同一个文件,最终只生成一个新文件
修复后的完整代码:
<asp:FileUpload ID="FileUpload1" runat="server" AllowMultiple="true" /> <asp:Button ID="Button1" Text="Upload File" runat="server" OnClick="UploadFile" />
'--Upload Multiple Files For Each postedFile As HttpPostedFile In FileUpload1.PostedFiles ' 获取当前文件的文件名 Dim fileName As String = Path.GetFileName(postedFile.FileName) ' 生成当前文件的保存路径 Dim filePath As String = Server.MapPath("~/Files/") & fileName ' 保存当前上传的文件 postedFile.SaveAs(filePath) '-- 为当前文件生成独立的新文件 Dim NewFile As String = filePath & "_NewCreatedFile.txt" Using FilWtr As New StreamWriter(NewFile) ' 这里可以添加写入新文件的内容逻辑 End Using Next
关键修改说明:
- 将文件保存逻辑移入循环内部,对每个上传的文件单独处理
- 使用循环中的
postedFile对象获取文件名并执行保存,确保所有上传文件都被保存 - 每个文件都生成独立的
filePath和新文件名,避免文件覆盖 - 使用
Using语句自动释放StreamWriter资源,比手动调用Close()更安全
内容的提问来源于stack exchange,提问作者Martha
相关产品推荐
相关产品推荐

