多个用户同时使用静态方法保存文件,如果多个用户同时保存文件,这种静态方法是否更安全?
file save with static method for multiple users at the same time , is this static method is safer if multiple user save the file at the same time
我正在使用这种方法在服务器上保存文件我想知道如果这种方法同时被多个用户使用,
更多信息是:此方法是从 asp.net MVC 应用程序的 JsonResult 调用的,此方法将文件保存在服务器上,return JsoneResult 的路径保存在数据库中.
1: 即使多个用户同时在线,这种存储文件的方式是否安全。
public static string SaveImageToServer(dynamic Image, string FolderPath, string FolderRootPath)
{
if (Image != null)
{
HttpPostedFileBase _image = (HttpPostedFileBase)Image;
string fileExtention = _image.FileName.Substring(_image.FileName.LastIndexOf('.'));
FUN.CreateMosDocInnerDir(FolderPath.ToString());
string ImgName = DateTime.Now.ToString("MMddyyyyHHmmssfffff");
string CreatedFileCompletePath = "/" + FolderRootPath + "/" + FolderPath.ToString() + "/" + FolderPath.ToString() + "_" + ImgName + fileExtention;
string path = HttpContext.Current.Server.MapPath("~" + CreatedFileCompletePath);
_image.SaveAs(path);
return CreatedFileCompletePath;
}
return null;
}
如果您问方法中的变量是否可以同时在两个调用者之间共享,答案是否定的。静态方法中的变量不会在调用之间共享 - 只有 class 的 静态属性 是共享的。
如果两个调用者在完全相同的时间使用完全相同的参数调用该方法,那么他们可以相互覆盖,或者第二个调用者可以得到文件存在的异常,或者如果 SaveAs
不是线程安全的。
我正在使用这种方法在服务器上保存文件我想知道如果这种方法同时被多个用户使用,
更多信息是:此方法是从 asp.net MVC 应用程序的 JsonResult 调用的,此方法将文件保存在服务器上,return JsoneResult 的路径保存在数据库中.
1: 即使多个用户同时在线,这种存储文件的方式是否安全。
public static string SaveImageToServer(dynamic Image, string FolderPath, string FolderRootPath)
{
if (Image != null)
{
HttpPostedFileBase _image = (HttpPostedFileBase)Image;
string fileExtention = _image.FileName.Substring(_image.FileName.LastIndexOf('.'));
FUN.CreateMosDocInnerDir(FolderPath.ToString());
string ImgName = DateTime.Now.ToString("MMddyyyyHHmmssfffff");
string CreatedFileCompletePath = "/" + FolderRootPath + "/" + FolderPath.ToString() + "/" + FolderPath.ToString() + "_" + ImgName + fileExtention;
string path = HttpContext.Current.Server.MapPath("~" + CreatedFileCompletePath);
_image.SaveAs(path);
return CreatedFileCompletePath;
}
return null;
}
如果您问方法中的变量是否可以同时在两个调用者之间共享,答案是否定的。静态方法中的变量不会在调用之间共享 - 只有 class 的 静态属性 是共享的。
如果两个调用者在完全相同的时间使用完全相同的参数调用该方法,那么他们可以相互覆盖,或者第二个调用者可以得到文件存在的异常,或者如果 SaveAs
不是线程安全的。