gpt4 book ai didi

jquery - 无法通过 jquery 到 MVC 操作删除文件

转载 作者:行者123 更新时间:2023-12-01 02:47:23 25 4
gpt4 key购买 nike

我正在通过 jquery 调用操作方法并尝试删除文件。但什么也没发生。该文件仍然存在。

以下是jquery代码

$("#pictureRemove").click(function (e) {
$("#pictureImage").html("<img src='../../Content/Images/noDefaultImage_100.gif'/>");
$(this).hide();
$.ajax({
type: 'POST',
url: '@Url.Action("Remove", "Category")',
data: { fileName: $('#pictureTitle').attr('src') },
dataType: 'json'
// User your JSON response.
});
});

以下是操作方法代码

    [HttpPost]
public ActionResult Remove(string fileName)
{
string completFileName = Server.MapPath("~/Content/Images/" + fileName);
System.IO.File.Delete(completFileName);
return Json(true);
}

最佳答案

在这一行:

data: { fileName: $('#pictureTitle').attr('src') }

您似乎正在将 fileName 参数从某些图像的 src 参数传递给 Controller ​​操作。所以我想你有这样的图像:

<img id="pictureTitle" src="/Content/images/foo.jpg" />

所以你正在通过/Content/images/foo.jpg因此,在您的 Controller 操作中,您尝试删除 Server.MapPath("~/Content/Images//Content/images/foo.jpg")翻译为c:\wwwroot\Content\Images\Content\images\foo.jpg这不太可能存在并抛出异常。

只需在 Controller 操作中放置一个断点并检查不同的参数即可。

这就是说,暴露一个接受文件名并删除服务器上文件的 Controller 操作是应用程序中的一个巨大的安全漏洞。

关于jquery - 无法通过 jquery 到 MVC 操作删除文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8368437/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com