2011-05-03 73 views
3

在我的asp.net页面中,我制作了一个从本地驱动器到服务器的文件副本。目录未找到异常...但我可以浏览到目录?

'append the name to the id number and generate the file name 
strFileName = System.Configuration.ConfigurationManager.AppSettings("strAttachmentsPath") & l.ToString & "_" & CType(Session("FileName"), String) 
'upload the file 
'FileUpload1.SaveAs(strFileName) 

System.IO.File.Copy(CType(Session("Attachment"), String), strFileName, True) 

strFileName包含像"\\myServer\images\theNewFileName.jpg" Session("Attachment")服务器路径包含我的本地路径'C:\Users\myUser\Desktop\AccountsFrance.txt'

但是当我运行此代码asp.net抛出一个异常:

但我可以浏览到这个文件很容易.... 我不明白为什么会发生这种情况:(

enter image description here

+0

这很可能是一个权限问题。或者,您正在使用不同的文件路径,那么您的真正意图。 – 2011-05-03 16:32:29

+0

@ rlb.usa - 不知道如何解决这个问题......因为我无法设置fileupload控件为了安全起见而采取字符串编程方式。我需要允许最终用户将文件从一个路径复制到服务器。该路径可能是他们的本地PC C/D/E驱动器等... – oJM86o 2011-05-03 16:34:30

回答

2

假设权限对网络服务设置写入目标目录,做一个

strFileName = Server.MapPath(System.Configuration.ConfigurationManager.AppSettings("strAttachmentsPath") & l.ToString & "_" & CType(Session("FileName"), String))

的目录,看看您是否仍然得到权限问题。

此外,会话(“附件”)的价值是什么?这需要是服务器上的文件路径,而不是用户端。通常情况下,在上传方案中,您需要从上传控件中获取字节[],并将其写入服务器上的流中。然后您可以将该文件路径复制到别的地方。

+0

@Josh - 我在哪里编辑? – oJM86o 2011-05-03 16:35:16

+0

@Josh我试过没有错误,但当然我评论说复制文件如何帮助我? – oJM86o 2011-05-03 16:37:58

+0

在处理ASP.NET页面时,您必须让服务器根据它所知道的来放置文件。这就是Server.MapPath的功能。尝试复制,看看会发生什么。 – Josh 2011-05-03 16:39:23