【问题标题】:ASP.net file upload from a non server - issue with Server.MapPath?从非服务器上传 ASP.net 文件 - Server.MapPath 有问题吗?
【发布时间】:2013-07-26 12:24:57
【问题描述】:

我正在尝试使用以下代码在 asp.net 中上传文件

Dim FileName As String = System.IO.Path.GetFileName(ClientFileName) 
MyFile.PostedFile.SaveAs(Server.MapPath("~/UploadedImportedFiles/" + FileName))

如果要上传的文件(比如 book1.xls)驻留在同时也是服务器的机器上,则一切正常,但如果文件驻留在不是服务器的 PC 上,则在第二行失败。我认为问题在于 Server.MapPath 从那里上传时似乎指的是非服务器 PC。

谢谢

【问题讨论】:

  • 你试过Server.MapPath("~/UploadedImportedFiles/")+FileName
  • 请告知您如何获得ClientFileName
  • 抱歉,您是否要在 CodeBehind 中“抓取”要“上传”的文件?还是让用户通过浏览器选择和上传文件?您不能从客户端计算机“获取”文件。
  • 嗨 Jon 用户从对话框中选择一个文件,代码是 Dim strClientFileName As String = MyFile.PostedFile.FileName
  • 嗨 Alexander 是的,我正在尝试获取一个文件以上传并保存在项目的文件夹中 - 你是什么意思你不能从客户端机器上获取文件 - 当我的机器都是客户端和服务器 - 我认为问题在于将其保存到服务器上的项目文件夹中

标签: asp.net vb.net


【解决方案1】:

您错误地获取了文件名。你应该使用下面的代码

 string filename = Path.GetFileName(FileUploadControl.FileName);

当然要将控件名称更改为您自己的。

请看:http://msdn.microsoft.com/en-us/library/aa479405.aspx

【讨论】:

  • @Garath...希望您不介意我在此添加指向 MSDN 的链接
  • 我不明白这有什么帮助。 Path.GetFileName 只是一个静态/共享函数,它返回给定路径的文件名。大概在OP的问题中, ClientFileName 是上传文件的完整路径,甚至只是文件名本身。所使用的只是有一个名称来保存文件,如第二行所示。你能进一步解释一下吗?
  • 谢谢你 - 我认为它得到了正确的名称(它正在获取 Book1.xls - 我认为这是问题 Dave 的保存 Asline
  • 你到底有什么错误?您是否检查了您要保存的路径?
  • 文件不存在 - 我认为问题在于我正在尝试将其保存到服务器路径,但它正在尝试将其保存到本地 PC。
猜你喜欢
  • 1970-01-01
  • 2015-04-14
  • 1970-01-01
  • 2017-12-27
  • 2011-03-08
  • 1970-01-01
  • 2021-07-07
  • 2013-03-18
  • 1970-01-01
相关资源
最近更新 更多