如何上传服务器外的文件asp.net
我想问如何上传我的文件在服务器外(为了安全问题)我使用teleric Rad UploadFiles(ASP.net web应用程序)..我不能使用方法如何上传服务器外的文件asp.net
server.map("~\\..\\")
到服务器去外面指定服务器以外所需的路径我得到这个
例外 不能使用的领先..退出顶级目录上方。
有没有什么办法来确定服务器
请帮忙之外的路径..
使用的完整路径,如“C:\上传”,并确保网络进程具有写权限到该文件夹
我认为你遇到了一个问题,因为server.map(..)调用,你不能只使用硬编码路径(从配置读取当然)。因此,请使用“C:\ UploadedFiles \”之类的东西。您需要确保ASP.NET正在运行的用户有权写入该目录等。
太感谢你了,请你能不能给我更多的细节 其中,config文件中,什么是替代Server.Map() 和重复的问题:: 时在服务器上发布的应用程序,服务器可以识别这样的绝对路径吗? – 2010-08-12 13:08:15
这完全包含在Telerik文档中对于这个控件可以找到here。简而言之:
[ASP.NET] RadUpload声明
<telerik:RadUpload ID="RadUpload1" Runat="server" />
<asp:Button Runat="server" ID="Button1" Text="Submit"
OnClick="Button1_Click" />
[C#]点击事件处理
using Telerik.Web.UI;
...
protected void Button1_Click(object sender, System.EventArgs e)
{
foreach (UploadedFile f in RadUpload1.UploadedFiles)
{
f.SaveAs("c:\\uploaded files\\" + f.GetName(), true);
}
}
但是当应用程序发布在服务器上时,服务器是否可以识别这样的绝对路径? – 2010-08-12 13:05:31
当然,Server.MapPath只需要一个“〜/ directory/directory /”形式的路径并将其转换为“C:\ Inetapp \ www \ directory \ directory”。 – Lazarus 2010-08-12 13:09:51
非常感谢你,但我不知道为什么我的团队领导告诉我(不要在你的应用程序中使用任何绝对路径,因为服务器无法识别它们,他告诉我使用Server.Map()相反,但在这个问题,我想上传到服务器外,这种方法将路径转换为在服务器中) – 2010-08-12 13:17:27
我使用Internet Explorer 8,并有类似的问题。我可以在IIS7上从服务器上载托管上载页面。我也可以从另一个不同的服务器上传,但是在与web服务器(托管上传页面)相同的域上。这两个工作。
但是,从不在域上的PC上传,没有上传,并给出了500错误。我最终将Internet Explorer上的上传网站添加到了可信站点,并且它运行良好。 :)
在此之前,我检查了文件夹等权利,这一切都好。也有大小的问题,然后有一个博客,说我要补充:
<requestLimits maxAllowedContentLength="2000000000" /> <!-- bytes -->
</requestFiltering>
到applicationHost.config文件在Web服务器上的位置C:\windows\system32\inetsrv\config\
另外在IIS7我也不得不检查ASP性能在上传页面所在网站的服务器管理器中,将限制属性\最大请求实体主体限制更改为匹配applicationHost.config
文件中的大小。
这是一个经典的asp网站。
但是当应用程序发布在服务器上时,服务器是否可以识别这样的绝对路径? – 2010-08-12 13:05:53
我在我的服务器上没有任何问题。我建议您将路径本身存储在web.config文件(appSettings部分)中,以便您可以为开发和生产服务器设置不同的路径。 – Ray 2010-08-12 13:22:41
非常感谢你,我认为这是解决方案,请两个问题(你使用Server.Map()函数),如何给这个web进程这个权限 – 2010-08-12 13:37:58