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

PHP Ajax文件上传不工作[重复]

施锋
2023-03-14

我使用Bootstrap,在Modalbox中有一个窗体。

还有一个文件上传,我想上传图像,但如果我点击提交按钮,网站看起来像重新加载瞬间,没有文件上传...

这是我的Ajax脚本

<script type="text/javascript">
    $("#submitad").click(function () {
        $.ajax({
            url: "application/views/addad.php",
            type: "POST",
            data: $("#addad").serialize(),
            success: function (data)
            {
                alert(data);
            }
        });
    });
</script>

这是用于上传的html表单字段

这里是PHP的事情

<?php
$target_dir = "uploads/";
$filename = basename($_FILES["InputFile"]["name"]);
$target_file = $target_dir . $filename;
$imageFileType = pathinfo($target_file, PATHINFO_EXTENSION);
$check = getimagesize($_FILES["InputFile"]["tmp_name"]);
if ($check !== false) {
    echo "File is an image - " . $check["mime"] . ".";
} else {
    echo "File is not an image.";
}
?>

但它不起作用。。。

如果我将其从php文件中删除,它将使用type=“text”和数字保存我的其他字段

但是文件上传不起作用,我已经尝试了很多我在谷歌上找到的

共有2个答案

袁炳
2023-03-14

要使用ajax上传文件,必须使用FormData()而不是序列化。所以试着这样做:

var file_data = $('#InputFile').prop('files')[0];
var form_data = new FormData();
form_data.append('file', file_data);  // you can append as many values here as you want

$.ajax({
        url         : 'addad.php',
        dataType    : 'text',
        cache       : false,
        contentType : false,
        processData : false,
        data        : form_data,                         
        type        : 'post',
        success     : function(output){
            alert(output);
        }
});

工作实例

乐欣可
2023-03-14

尝试下面的代码,并在ajax代码中做一些更改。在代码中添加以下参数。

processData:false,contentType:false,

并在ajax启动之前添加var formData=new FormData($("#formID")[0]);行。

或者检查下面的代码并根据您的代码进行更改。

<script type="text/javascript">
    $("#submitad").click(function () {
        var formData = new FormData($("#addad")[0]);
        $.ajax({
            url: "application/views/addad.php",
            type: "POST",
            data: formData,
            processData: false,
            contentType: false,
            success: function (data)
            {
                alert(data);
            }
        });
    });
</script>
 类似资料:
  • 我正在开发一个带有文件上传的web应用程序。 我只是写了一个PHP代码来上传一个图像。 当我运行此代码时,我可以在文件上传时获得输出,如果上传错误 我给了777权限来访问pic文件夹 有什么问题,有什么想法吗,, 类型 Print_R 数组 谢啦

  • 我无法上传新泽西州的文件。使用泽西1.9。InputStream到达服务时为空。我尝试过将其作为普通表单提交和使用jQuery表单插件的AJAX提交,但结果都是一样的。也没有记录任何异常,这让它更加令人沮丧。 HTML表单 聚甲醛 Eclipse中的依赖层次结构显示mimepull.jar1.6也被引入。 剩下的服务 如果我添加@FormDataParam(“fileupload_name”)Fo

  • 我对Angular 2相当陌生,请考虑一下。 我在使用angular 2将文件上传到节点服务器时遇到了一个问题。使用邮递员很管用:

  • 我的代码有什么问题?我想有人能帮我。

  • 问题内容: Java控制器类: html文件: 角js: 这是我在服务器日志中无法理解的错误: 问题答案: 尝试以下方法。对我来说很好。 HTML你应该有 注意输入的名称。 然后在JS控制器方法中 现在在您的Java Controller类中 希望这对您有用。并且也要进行异常处理。

  • 问题内容: Java控制器类: html文件: 角js: 这是我在服务器日志中无法理解的错误: 问题答案: 尝试以下方法。对我来说很好。 HTML你应该有 注意输入的名称。 然后在JS控制器方法中 现在在您的Java Controller类中 希望这对您有用。并且也要进行异常处理。