2010-06-28 209 views
0

我的代码有问题。我的代码是使用fileupload控件浏览文件名,当你添加一个处理它的文件名时,代码在本地主机上运行时运行正常,但是当我把代码放到我们的prodution服务器上时,它找不到文件名用户。将文件名映射到服务器上的路径Asp.net

例如,如果我使用上传控件浏览到 B:\ MIS \ CH Intive \ RPTTOFL_3.csv并且代码位于我的本地主机上,它知道文件路径是什么意思,但如果代码被移动到生产服务器它可能或可能不知道什么B:/是或B:/可能映射到其他东西。 即使我正在浏览我的C驱动器上的文件,它也会工作,如果代码位于C驱动器所在的计算机上,但是如果代码位于另一台计算机上,则该代码无效,因为显然该文件不会那C盘。

Private Function CSV2DataTable(ByVal filename As String) As DataTable 

Using MyReader As New _ 
Microsoft.VisualBasic.FileIO.TextFieldParser(filename) 
      MyReader.TextFieldType = FileIO.FieldType.Delimited 

. 
. 
. 

我可以在asp.net中做些什么来使文件名正常工作?

确定可以说我得到的文件名和保存为这样

FileUploadControl.SaveAs(使用Server.Mappath( “〜/”)+文件名);

现在我想通过文件名到上面的函数进行处理。我是否将Server.MapPath(“〜/”)+ filename作为文件名?另外,当我完成后,我该怎么做才能从服务器上删除文件?

回答

1

看来你在混合文件的客户端和服务器位置。在读取上传的文件之前,服务器端代码必须将其保存在服务器上(此时客户端文件位置通常不相关)。来自FileUpload类的VS帮助:“您为保存指定文件而编写的代码应该调用SaveAs方法,该方法将文件的内容保存到服务器上的指定路径。” FileUpload控件的在线帮助主题具有足够的信息(包含示例)来实现您所需的内容。

+0

你能用我想找的代码指出一个好的吗? – 2010-06-28 14:53:31

+0

我需要能够将文件名传递给一个函数。我会怎么做? – 2010-06-28 14:56:05

+0

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.fileupload.aspx - 您将从那里的示例中看到,您完全控制了保存该服务器的位置上传的文件,因此在将文件保存在服务器上之后,您知道它将传递给函数的完整路径。 – Igor 2010-06-28 15:17:59

相关问题