通过PHP和Jquery发布上传文件

通过PHP和Jquery发布上传文件,php,jquery,ajax,forms,file-upload,Php,Jquery,Ajax,Forms,File Upload,我尝试使用Jquery通过Ajax和PHP上传一个文件,但它不起作用 这是我的HTML表单(我正在使用引导): 当我调试javascript并监视fileInput时,我可以看到类似Files:FilesList[1]0:file…这样的文件,但脚本只是停止,并且在控制台中不显示任何内容,甚至错误 PHP中的$\u文件var只是空的。(已选中指向的所有配置) 还尝试了fileInput.prop('files')[0]和新表单数据(formToSubmit),但我有同样的问题 我做错了什么?虽然

我尝试使用Jquery通过Ajax和PHP上传一个文件,但它不起作用

这是我的HTML表单(我正在使用引导):

当我调试javascript并监视
fileInput
时,我可以看到类似
Files:FilesList[1]0:file…
这样的文件,但脚本只是停止,并且在控制台中不显示任何内容,甚至错误

PHP中的
$\u文件
var只是空的。(已选中指向的所有配置)

还尝试了
fileInput.prop('files')[0]
新表单数据(formToSubmit)
,但我有同样的问题


我做错了什么?

虽然不是同一个问题,但的答案(链接在@u_mulder的问题评论中)解决了我的问题

以下是功能代码:

$('#submit-edit-company').click(function(e) {
        e.preventDefault();

        var formToSubmit = $(this).parents('form#edit-company');
        var dataToSend = new FormData(formToSubmit[0]);
        var fileInput = formToSubmit.find('input[type="file"]')[0];
        var fileData = fileInput.attr('files')[0];
        console.log(fileData);

        $.ajax({
            url: 'app/editCompanyService',
            data: dataToSend,
            type: 'POST',
            dataType: 'JSON',
            contentType: false,
            cache: false,
            processData:false,
            beforeSend: function () {},
            success: function (return) {},
            error: function(jqXHR, textStatus, errorThrown) {
                console.log("Error... " + textStatus + "        " + errorThrown);
            }

虽然不是同一个问题,但的答案(链接在@u_mulder的问题评论中)解决了我的问题

以下是功能代码:

$('#submit-edit-company').click(function(e) {
        e.preventDefault();

        var formToSubmit = $(this).parents('form#edit-company');
        var dataToSend = new FormData(formToSubmit[0]);
        var fileInput = formToSubmit.find('input[type="file"]')[0];
        var fileData = fileInput.attr('files')[0];
        console.log(fileData);

        $.ajax({
            url: 'app/editCompanyService',
            data: dataToSend,
            type: 'POST',
            dataType: 'JSON',
            contentType: false,
            cache: false,
            processData:false,
            beforeSend: function () {},
            success: function (return) {},
            error: function(jqXHR, textStatus, errorThrown) {
                console.log("Error... " + textStatus + "        " + errorThrown);
            }

可能的副本您确定您使用的浏览器支持您尝试执行的操作吗?@u\u mulder。我没有看到这个问题。我将尝试提出的解决方案,看看问题是否相同。我认为是这样。我使用的是Firefox42,我没有看到任何不寻常的资源。您看到了吗?刚才注意到:如果您正在执行
formToSubmit.find('input[type=“file”]”)操作[0]
您得到了一个常规的dom元素引用,但是您没有
fileInput.attr('files')[0]在下一行。attr是一个jQuery函数。Do
$(fileInput).attr('files')[0]可能的副本您确定您使用的浏览器支持您尝试执行的操作吗?@u\u mulder。我没有看到这个问题。我将尝试提出的解决方案,看看问题是否相同。我认为是这样。我使用的是Firefox42,我没有看到任何不寻常的资源。您看到了吗?刚才注意到:如果您正在执行
formToSubmit.find('input[type=“file”]”)操作[0]
您得到了一个常规的dom元素引用,但是您没有
fileInput.attr('files')[0]在下一行。attr是一个jQuery函数。Do
$(fileInput).attr('files')[0]
$('#submit-edit-company').click(function(e) {
        e.preventDefault();

        var formToSubmit = $(this).parents('form#edit-company');
        var dataToSend = new FormData(formToSubmit[0]);
        var fileInput = formToSubmit.find('input[type="file"]')[0];
        var fileData = fileInput.attr('files')[0];
        console.log(fileData);

        $.ajax({
            url: 'app/editCompanyService',
            data: dataToSend,
            type: 'POST',
            dataType: 'JSON',
            contentType: false,
            cache: false,
            processData:false,
            beforeSend: function () {},
            success: function (return) {},
            error: function(jqXHR, textStatus, errorThrown) {
                console.log("Error... " + textStatus + "        " + errorThrown);
            }