You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 17:50:33