临时文件 Asp.net

8

使用类似以下代码在 asp.net 应用程序中创建临时文件和图像是否可行:

ImagePB.Save(Server.MapPath("~/temp/image.jpg"), ImageFormat.Jpeg);

如果不行,我应该怎么做?(ImagePB 是先前处理过的 Bitmap)

if (System.IO.File.Exists(System.IO.Path.GetTempPath() + @"img" + imgID.ToString() + "PB" + extencao) == true)
{
    try
    {
        System.IO.File.Delete(System.IO.Path.GetTempPath() + @"img" + imgID.ToString() + "PB" + extencao);
        imagePB.Save(System.IO.Path.GetTempPath() + @"img" + imgID.ToString() + "PB" + extencao, imgFormat);
    }
    catch (Exception)
    { }
}

考虑到这是一个 .net 网站,应用程序正在执行的用户需要对临时目录具有读写访问权限。如果您需要帮助设置,请访问 serverfault.com。 - NotMe
1个回答

8
是的,GetTempPath() 应该返回临时文件路径,而您发布的代码 应该 可以工作。有关 GetTempPath() 如何获取路径的更多信息,请参见 http://msdn.microsoft.com/en-us/library/system.io.path.gettemppath.aspx
但是,它不会验证 Temp Path 目录是否存在,或者应用程序是否可以写入。我没有遇到过 GetTempPath() 返回无法访问的路径的情况。您可能需要在应用程序中考虑这种情况以处理它。
此外,请注意,这很可能是 C:\Windows\Temp。它的磁盘空间可能有限,或者在需要磁盘空间时由其他人随时删除。您可能需要在应用程序中创建一个临时路径,并在不再需要时将其删除。

安全问题呢? - user2013107
你担心哪种安全问题?你担心未经授权的人看到文件吗?还是担心无法写入GetTempPath()返回的文件夹? - Steven V
1
默认情况下,ASP.net应用程序无法写入该文件夹。 - Christian

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接