【问题标题】:ASP.NET FileUpload ReName File Before UploadASP.NET FileUpload 上传前重命名文件
【发布时间】:2013-01-24 00:31:32
【问题描述】:

我正在使用 ASP.NET 中的 FileUpload 控件。用户只能上传服务器上已经存在的某个文件名和扩展名。我想做的是用不同的名称上传用户选择的文件。例如,服务器和工作站上的文件都是monthlyreports.xls。我希望将工作站版本作为monthlyreports_user.xls 上传,这样它就不会覆盖现有文件。

我查看了How can I rename a file in ASP.NET? 并尝试了 File.Copy 方法,但它不起作用 - 我收到一个错误,它找不到文件。

Private Sub uploadItems(ByVal vPath As String)
    Dim strRename As String = "monthlyreports_user.xls"

    File.Create(vPath & strRename)

    Try
        If FileBrowse.HasFile Then

            File.Copy(FileBrowse.FileName, strRename)

            FileBrowse.SaveAs(strRename)

        End If
    Catch ex As Exception
        DisplayMsgBox(Me, ex.Message(), "uploadErr")
    End Try

FileBrowse 是我的 FileUpload 控件的名称,vPath 是服务器上的应用程序安装路径。

【问题讨论】:

    标签: asp.net


    【解决方案1】:

    .SaveAs 方法已经让您有机会指定一个新的文件名。这应该工作

     string newfilename = String.Format("{0}_{1}", "My_Prefix_", FileBrowse.FileName)
     FileBrowse.SaveAs(newfilename)
    

    【讨论】:

      【解决方案2】:

      您只需要在 FileUpload 控件上调用SaveAs 方法即可:

      FileBrowse.SaveAs(strRename)
      

      在您的代码中调用File.Copy 是不必要的。

      【讨论】:

      • File.Copy 命令不仅是不必要的;它行不通。 FileName 将是客户端上文件的路径*,服务器上可能不存在。 (*或者可能只是名称,具体取决于浏览器。)
      • 完美运行。谢谢!
      猜你喜欢
      • 2012-05-04
      • 1970-01-01
      • 2019-07-25
      • 2016-04-01
      • 1970-01-01
      • 2012-06-20
      • 2015-09-02
      • 1970-01-01
      • 2013-01-09
      相关资源
      最近更新 更多