当前位置: 首页 > 知识库问答 >
问题:

通过jQuery ajax使用Coldfusion删除文件

龙华翰
2023-03-14

我正在尝试删除图像文件后,填充了关于文件的数据在一个模式。

我的jQuery如下所示:

const deleteMedia = () => {
    const url = '../../includes/delete-media.cfc?method=deleteMedia';
    $(document).on('click', '.confirm-delete', () => {
        const fileName = $('.modal-wrapper').find('.file-name').text();
        $.ajax({
            url,
            type: 'POST',
            data: 'fileName=' + fileName,
            dataType: 'json',
            success(data) {
                console.log(data);
            },
            error(status) {
                console.log(status.statusText);
            }
        });
        return false;
    });
};

export default deleteMedia;

和我的Coldfusion文件delete-media.cfc:

<cffunction name="deleteMedia" access="remote" returnType="any" returnformat="json">
    <cfargument name="fileName" >
    <cfset requestBody = toString( getHttpRequestData().content ) />
    <!--- Double-check to make sure it's a JSON value. --->
    <cfif isJSON( requestBody )>
        <cfset VARIABLES.DeleteFileName = deserializeJSON( requestBody )>
        <cffile
            action = "delete"
            file = "C:\pathToSite\img\#variables.DeleteFileName#"
        >
        <cfdump var="#variables.DeleteFileName#">
    </cfif>
</cffunction>

这是在我签入网络面板时将filename=filename作为数据发送,并返回一个200,尽管我看不到cfdump的内容。

我对FE还行,对CF不是那么热,我的猜测是我的CF过于复杂,但也没有做我希望它能做的事情。我确实试着参考了我以前写的一些东西,再加上下面这个:

如何使用Ajax将Javascript变量传递给ColdFusion?

还有这个:

通过JQuery传递和返回ColdFusion结构

有什么想法吗?

共有1个答案

乌杰
2023-03-14

根据Redtopia的评论,我创建了以下内容:

<cfset requestBody = toString( getHttpRequestData().content ) />
<!--- Double-check to make sure fileName exists. --->
<cfif len(requestBody)>
    <cfset deleteFileName = requestBody.split("=")[2] />
    <cfoutput>#deleteFileName#</cfoutput>
    <cffile
        action = "delete"
        file = "C:\pathToSite\img\#deleteFileName#"
    >
<cfelse>
    <cfoutput>fileName not correct</cfoutput>
</cfif>

然后,在我的ajax调用中,我删除了数据类型JSON。

$(document).on('click', '.confirm-delete', () => {
    const fileName = $('.modal-wrapper').find('.file-name').text();
    $.ajax({
        url,
        type: 'POST',
        data: 'fileName=' + fileName,
        success(data) {
            console.log(data);
            hideOverlay();
        },
        error(status) {
            console.log(status.statusText);
        }
    });
});

看起来还行!

 类似资料:
  • 问题内容: 我刚刚在android应用程序中编写了一个函数,该函数使用Java中的标准“文件”类删除文件。即: 尽管上面的过程很简单,但我一直想知道通过“ ContentResolver”执行该操作是否有任何好处。任何意见,将不胜感激。 干杯, 杰瑞德 ------------------------------------------编辑------- 这是通过Content Resolver删

  • 问题内容: 如果文件位于另一个目录中,如何使用PHP从服务器中删除文件? 这是我的页面布局: (此文件将删除我对数据库的所有条目,并且还应删除相关文件) (文件所在的位置。) 我正在使用的功能: 但这总是给我一个错误,该文件不存在。有任何想法吗? 问题答案: 以下应该有帮助 —返回规范化的绝对​​路径名 —告诉文件名是否可写 —删除文件 通过realpath运行文件路径,然后检查返回的路径是否可写

  • 问题内容: 我发现了一个有趣的功能,称为delete by query 。我如何在jest客户程序中使用它? 谢谢! 问题答案: 您可以使用如下所示的类: 另请注意,如果您运行的是ES 2.x或更高版本,则需要先从插件安装Delete by query API 。

  • 我们可以通过获取url来删除图像还是有其他方法?

  • 问题内容: : 如何删除其中所有空白的新行? 命令输出: : 问题答案: (如果你真的想这样做在sed,则:) (如果你真的想这样做的AWK,然后:)

  • 我无法让FORFILES为我工作。我运行一个. bat,使用下面的一个示例备份我每天拥有的一些数据库。 然后,在运行备份后,我想使用下面的示例删除超过五天的旧文件。 但实际情况是,它创建备份,但从不删除旧的备份。我做错了什么? Ken这似乎仍然不起作用。我将@文件更改为@路径并运行了,但我仍然有备份。我还有另一个问题,我是否可以将删除限制为仅从bak\u开始的文件?我是否可以按文件名删除该文件,因