在 OneDrive 中将文件发送到服务器时出现问题

问题描述 投票:0回答:1

当 Excel 文件通过 OneDrive 同步并在 Excel 应用程序中打开时,当您尝试选择该文件时,会出现消息“文件正在使用”,这是正确的。但是,当我拖放文件时,没有任何消息出现,但是当将文件发送到服务器时,文件没有发送。

有什么方法可以检查文件是否正在被另一个进程使用?能够自己显示消息。

javascript drag-and-drop onedrive
1个回答
0
投票

如果您在 Web 环境中工作,您将需要使用服务器端验证,因为由于安全措施,JS 无法访问文件... 这就是我在 asp.net 中执行此操作的方式:

public JsonResult CheckFileStatus(string filePath)
{
    try
    {
        if (IsFileInUse(filePath))
        {
            return new JsonResult(new { success = false, message = "file is in use" });
        }
        else
        {

            return new JsonResult(new { success = true, message = "File is not in use and can be accessed." });
        }
    }
    catch (Exception ex)
    {
        // Handle any unexpected errors
        return new JsonResult(new { success = false, message = ex.Message });
    }
}

private bool IsFileInUse(string filePath)
{
    try
    {
        using (FileStream fs = File.Open(filePath, FileMode.Open, FileAccess.ReadWrite, FileShare.None))
        {
            // File is not in use
        }
        return false;
    }
    catch (IOException)
    {
        // File is in use
        return true;
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.