我正在使用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是服务器上的应用程序安装路径。
答案 0 :(得分:1)
.SaveAs
方法已经为您提供了指定新fileName的机会。这应该工作
string newfilename = String.Format("{0}_{1}", "My_Prefix_", FileBrowse.FileName)
FileBrowse.SaveAs(newfilename)
答案 1 :(得分:0)
您只需要调用FileUpload控件上的SaveAs
方法:
FileBrowse.SaveAs(strRename)
您的代码中对File.Copy
的调用是不必要的。