c# – ASP.NET文件上传在windows azure中不起作用

我在ASP.NET MVC3项目中为上传文件编写了一些代码.我没有将文件存储在数据库中,而是将文件上传到文件系统中并将路径存储在数据库中.

上传代码如下: –

if (file != null && file.ContentLength > 0)
{
    if (path == null)
    {
        throw new ArgumentNullException("path cannot be null");
    }
    string pFileName = PrefixFName(file.FileName);
    String relpath = String.Format("{0}/{1}", path, pFileName);
    try
    {
        file.SaveAs(Server.MapPath(relpath));
        return pFileName;
    }
    catch (HttpException e)
    {
        throw new ApplicationException("Cannot save uploaded file", e);
    }
}

保存文件后,我在几个视图中使用了带有图像标记的图像.我的代码在本地工作正常.但是,当我在windowsazure.com上托管该网站时,一切正常,但文件上传.

我怎样摆脱这种情况?请帮忙.

最佳答案
在尝试保存文件之前需要注意的一件事是确保存在要保存文件的目录.这是一个代码片段,用于确保在目标服务器上创建目标目录.

   var path= Server.MapPath("~/ImagesDirectory");

   if (!System.IO.Directory.Exists(path))
   {
       System.IO.Directory.CreateDirectory(path);
   }

您可能希望将其包装为try / catch,以确保您的应用程序具有NTFS权限,以便在该位置编写和创建目录.此外,确保您的路径变量呈现出您认为应该是的路径.

此外,如果VS项目中存在该目录,但其中没有任何内容,则编译器将不会创建该目录.要确保在上载项目时创建目录,请将空文本文件(例如“_doNotDelete.txt”)插入该目录,并将其构建操作设置为内容.这将确保在您进行发布时创建目录.

转载注明原文:c# – ASP.NET文件上传在windows azure中不起作用 - 代码日志