将图像路径存储为 asp.net 中的单个正斜杠

本文关键字:单个正 net asp 图像 路径 存储 | 更新日期: 2023-09-27 18:33:06

我正在将图像上传到文件夹并将其路径保存在数据库中。这是我的代码。

[HttpPost]
public ActionResult UploadPic(FileManagement fmanage, HttpPostedFileBase file)
{
    string email = User.Identity.Name;
    if (file != null && file.ContentLength > 0)
    {
        var FileName = string.Format("{0}.{1}", Guid.NewGuid(), Path.GetFileName(file.FileName));
        var path = Path.Combine(Server.MapPath("~/Content/Uploads"), FileName);
        file.SaveAs(path);
        using (var session = DocumentStore.OpenSession("RavenMemberShip"))
        {
            var query = from q in Session.Query<Registration>() where q.Email == email select q;
            if (query.Count() > 0)
            {
                foreach (var updated in query)
                {
                    updated.FileName = FileName;
                    updated.Path = path;
                    session.SaveChanges();
                }
            }
        }
    }
    else
        ModelState.AddModelError("", "Remove the errors and try again");
    return View();
}

但是路径存储为双正斜杠,这是错误的。如何将路径另存为单斜杠。提前感谢您的帮助。

将图像路径存储为 asp.net 中的单个正斜杠

您说路径使用"双正斜杠"存储,这将是//. 我想你的意思是"双反斜杠",这将是''. 如果我弄错了,请提供一个例子。

双反斜杠

是合适的,因为它转义了反斜杠字符。 诸如 'n 之类的值将是换行符,因此实际的反斜杠必须转义为 '' 。 这是 JSON 存储字符串的方式的一部分。

但是,您可能需要考虑仅将文件名存储到文档中。 上传文件夹的完整路径将是多余的。 如果您想更改它,那么您应该能够编辑设置,而不必修改所有文档。

代码的其他问题:

  • 删除此行:

    if (query.Count() > 0)
    

    这是不必要的,并且会导致查询执行两次。

  • 这一行:

    session.SaveChanges();
    

    需要在foreach循环移动。 您只需要将一批更改发送到 RavenDB。

  • 使用一致的命名约定。 FileName局部变量的大小写应为 fileName