PHP Ajax文件上传不起作用

12 浏览
0 Comments

PHP Ajax文件上传不起作用

我使用Bootstrap,并在Modalbox中使用一个表单。

还有一个文件上传,我想上传图片,但是如果我点击提交按钮,网站会立即重新加载,而没有文件上传...

这是我的Ajax脚本


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

这是PHP的部分


但是它不起作用...

如果我从php文件中删除它,它会保存我的其他字段,类型为"text"和数字

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

0
0 Comments

问题出现的原因是在使用ajax上传文件时,需要使用FormData()而不是serialize。解决方法是将文件数据添加到FormData对象中,并将contentType和processData设置为false。

代码示例:

var file_data = $('#InputFile').prop('files')[0];
var form_data = new FormData();
form_data.append('file', file_data);
$.ajax({
        url         : 'addad.php',
        dataType    : 'text',
        cache       : false,
        contentType : false,
        processData : false,
        data        : form_data,                         
        type        : 'post',
        success     : function(output){
            alert(output);
        }
});

链接:工作示例

另外,还有一种解决方法是将表单中的提交按钮的类型从submit改为button

代码示例:

<button type="button" id="submitad" class="btn btn-primary">add</button>

0
0 Comments

PHP Ajax File Upload is not working的问题出现的原因是没有正确设置ajax请求的参数。解决方法是添加processData和contentType两个参数,并在ajax开始之前添加var formData = new FormData($("#formID")[0])这一行代码。

具体代码如下:


尝试过上述方法后发现仍然无效。当点击模态框中的提交按钮时,模态框会立即关闭,并且似乎没有上传任何内容。

0