我实际上正在开发一个应用程序,该应用程序使用户可以上传他们想要的文件。这些文件上传后也应该可视化。
为此,我尝试使用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/...
等。
顺便说一句,还要注意@"\\"
会导致双反斜杠,我认为这不是您想要的。@"\"
或"\\"
都将导致单个反斜杠。
关于c# - Server.MapPath和window.open(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13430869/