当前位置: 首页 > 面试题库 >

如何查看以ajax形式上传的文件?

蔡修远
2023-03-14
问题内容

我正在尝试上传以表格形式发送的文件。我正在尝试使用php,但是在html和php之间我使用JS和Jquery和ajax(因为我不想重新加载页面)。我在$
_FILES方面遇到麻烦。

在这里,我正在使用带有javascript操作(action =“ javascript:SendPresupMail();”)的表单(包含文件输入)。

在该JS函数中,我使用了一个小Jquery和ajax,在其中,有一个对php函数的调用。

问题是,在该php函数中,$ _ FILES为空,我需要上传以表格形式发送的文件。

这是代码:

HTML表单,调用JS:

<form action="javascript: sendPresupMail();" method="post" id="formId" enctype="multipart/form-data">
<input type="text" id="mail" name="mail" />
<input type="file" id="file_selected" name="file_selected" />
<input type="submit" value="Submit" />

JS函数,并使用AJAX和JQUERY调用PHP:

function sendPresupMail() {
$.ajax({
    url: 'remote.php',
    type: 'post',
    data: {
    'w': 'sendPresupMail',
    'mail': document.getElementById('mail').value
    },
    success: function(data) {
        if(data != "ok" && data != ""){alert(data);}
        if(data == "ok"){alert("mail send.");}
    }
});

}

最后,PHP代码:

private function sendPresupMail(){
    $filename = ($_FILES['file_selected']['name']);
            ...
            ...
}

那里的代码无关紧要,问题在于$ filename没有收到任何东西,因为$
_FILES为空(我用var_dump对其进行了检查,并且为空)。因此我无法上传文件,该怎么办?

解决了

解决方法如下:实际上,这比我想象的要简单得多。首先,我创建一个iframe,因此现在所有表单,javascript,ajax等都在iframe中进行了处理。因此,页面似乎没有刷新,因为iframe正在这样做。无论如何,感谢大家的回答!


问题答案:

您不能使用纯Ajax / jQuery来做到这一点,但是可以与主要浏览器的所有最新版本都支持的JavaScript FormData对象结合使用。

可以在这里找到一个非常简单的jQuery示例:https :
//coderwall.com/p/p-n7eq

可以在以下位置找到更详细但纯净的JavaScript:https :
//developer.mozilla.org/zh-
CN/docs/Web/Guide/Using_FormData_Objects?redirectlocale=en-
US&redirectslug=Web%2FAPI%2FFormData%2FUsing_FormData_Objects



 类似资料:
  • 我正试图用截击的方式发送图像 调用函数: 试道: 并传递配置文件字段中的值。 使用邮递员的成功方法:

  • 问题内容: 我正在为表单使用jQuery和Ajax来提交数据和文件,但是我不确定如何以一种形式发送数据和文件? 我目前对这两种方法几乎都执行相同的操作,但是将数据收集到数组中的方式不同,数据使用但文件使用 是否可以将两种方法结合起来以通过Ajax以一种形式上载文件和数据? 数据jQuery,Ajax和html 文件jQuery,Ajax和html 如何结合以上内容,以便可以通过Ajax以一种形式发

  • 问题内容: 我检查文件扩展名是否已上传。我的示例方法有效,但是现在我需要了解我的方法(使用)是否正确。还有另一种更好更快的方法吗? 问题答案: 使用)可能没有效率。如果您允许20个不同的扩展名怎么办? 尝试:

  • 问题内容: 我正在为表单使用jQuery和Ajax来提交数据和文件,但是我不确定如何以一种形式发送数据和文件? 我目前对这两种方法几乎都执行相同的操作,但是将数据收集到数组中的方式不同,数据使用但文件使用 是否可以将两种方法结合起来以通过Ajax以一种形式上载文件和数据? 数据jQuery,Ajax和html 文件jQuery,Ajax和html 如何结合以上内容,以便可以通过Ajax以一种形式发

  • 问题内容: 我已经通过Ajax提交了表单,我无法在此提交中上传图片 在提交代码中 输出: JavaScript代码 问题答案: 使用该类最简单: 因此,现在您有了一个FormData对象,准备与XMLHttpRequest一起发送。并使用FormData对象附加字段 并强制jQuery不要为您添加Content-Type标头,否则,上传文件边界字符串将丢失。

  • 问题内容: 在我的Web应用程序中,我有一个图像上传模块。我想检查上传的文件是图像文件还是其他文件。我在服务器端使用Java。 图像在Java中读取,然后将其写入磁盘 我应该如何检查,究竟是图像还是其他? 任何建议或链接将不胜感激。 问题答案: 我假设您正在servlet上下文中运行它。如果仅根据文件扩展名检查内容类型是可以承受的,则可使用来获取mime类型(内容类型)。只需检查它是否以开头。 默