将图像路径存储为 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();
}
但是路径存储为双正斜杠,这是错误的。如何将路径另存为单斜杠。提前感谢您的帮助。
您说路径使用"双正斜杠"存储,这将是//
. 我想你的意思是"双反斜杠",这将是''
. 如果我弄错了,请提供一个例子。
是合适的,因为它转义了反斜杠字符。 诸如 'n
之类的值将是换行符,因此实际的反斜杠必须转义为 ''
。 这是 JSON 存储字符串的方式的一部分。
但是,您可能需要考虑仅将文件名存储到文档中。 上传文件夹的完整路径将是多余的。 如果您想更改它,那么您应该能够编辑设置,而不必修改所有文档。
代码的其他问题:
删除此行:
if (query.Count() > 0)
这是不必要的,并且会导致查询执行两次。
这一行:
session.SaveChanges();
需要在
foreach
循环后移动。 您只需要将一批更改发送到 RavenDB。使用一致的命名约定。
FileName
局部变量的大小写应为fileName
。