我实际上正在开发一个应用程序,该应用程序为用户提供了上传他们想要的文件的可能性。这些文件在上传后也应该是可可视化的。
为了做到这一点,我正在尝试使用Server.MapPath和其他值的串联来获取文件路径。文件路径作为参数在 window.open javascript 函数中传递。
我的问题是我根本没有得到任何结果。没有打开任何窗口。
这是我的代码:
string completeUrl = Server.MapPath(ConfigurationManager.AppSettings["UsersImagesUploadFolder"] + CurrentUserLogin +
@"\" + ((GridDataItem) e.Item)["Url"].Text);
string radWindowOpen = "<script type='text/javascript'>window.open('" + completeUrl + "')</" + "script>";
Page.ClientScript.RegisterStartupScript(this.GetType(), "fileDisplay", radWindowOpen);
我可能错过了一些明显的东西,但我看不出它是什么。
谢谢你的回答。
正如 Damien 指出的那样,Server.MapPath
用于服务器端路径映射。客户端需要查看 Web 应用下的路径。
例如:
Page.ResolveUrl("~/uploads/" + ConfigurationManager.AppSettings["UsersImagesUploadFolder"] ...
将解析为 http://mydomain/vroot/uploads/...
等。
顺便说一句,还要注意@"\"
会导致双反斜杠,我认为这不是您的意图。
@""
或"\"
中的任何一个都会导致单个反斜杠。