等待HttpPostedBaseFile SaveAs完成

时间:2016-09-26 18:40:06

标签: c# file-upload upload save save-as

我想在继续之前等待SaveAs完成,我已经尝试了一些不同的解决方案,但它仍然只是立即继续,而不是等待上传完成。我尝试了什么:

创建一个包装函数来返回一个int(这是我在Stack Overflow上找到的):

    public int SaveFile(HttpPostedFileBase file, string filePath)
    {
        if (!System.IO.File.Exists(filePath))
        {
            try
            {
                file.SaveAs(filePath);

                return 1;
            }
            catch
            {

            }
        }
        return 0;
    }

在我的主要方法中运行:

var success = SaveFile(hpf, savedFileName);

我还尝试检查文件是否准备就绪:

while (!IsFileReady(filePath))
{
     System.Threading.Thread.Sleep(500);
}

致电:

    [Authorize(Roles = "L,I")]
    public static bool IsFileReady(String sFilename)
    {
        // If the file can be opened for exclusive access it means that the file
        // is no longer locked by another process.
        try
        {
            using (FileStream inputStream = System.IO.File.Open(sFilename, FileMode.Open, FileAccess.Read, FileShare.None))
            {
                if (inputStream.Length > 0)
                {
                    return true;
                }
                else
                {
                    return false;
                }

            }
        }
        catch (Exception)
        {
            return false;
        }
    }

再次,没有运气。我只需要确保file.SaveAs(...)等待文件完成上传以继续。

0 个答案:

没有答案