【问题标题】:Jquery ajax fileupload via php通过php上传jquery ajax文件
【发布时间】:2012-10-29 16:14:48
【问题描述】:

我在 jquery 中通过 ajax 使用的 php 文件上传有问题。

这是我在 php 上传文件中的代码:

if ($_FILES["file"]["error"] > 0)
{
    echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
} else {
    move_uploaded_file($_FILES["file"]["tmp_name"],"termine.csv");
    echo "Stored in: " . $_FILES["file"]["name"];
}

这是我的 jquery ajax 语句:

 $('#upload_csv').click( function() {
    $.ajax({
        url: '/playground/php/updatedates.php',
        type: 'POST',
        data: $('form#csv').serialize(),
    }).done(function(txt) {
            if(txt!='')alert(txt);
    });
});

这是我在 index.php 文件中的表格:

<form enctype="multipart/form-data" id="csv" method="POST">
            <div style="float:left">
            <input name="file" type="file" id="file" size="100">
            <br/>
            <input type="submit" id="upload_csv" value="upload csv file">
            </div>
        </form>

我得到的唯一错误信息是“错误”,没有别的。

希望有人能提供帮助。

【问题讨论】:

  • 请修改js行如下数据:$('#csv').serialize(),
  • @iliketocodenstuff 请创建一个 else 部分 if(txt!='')alert(txt);否则警报(“这里”);让我知道结果是什么
  • @Elby 警报(“这里”)没有被执行。
  • 这意味着您的 updatedates.php 中有错误或在 $_FILE 中没有任何内容,因此请评论所有其他代码中的任何内容,并检查您是否在警报中得到任何结果

标签: php jquery ajax upload


【解决方案1】:

$().serialize 总是创建一个url-encoded 字符串,并忽略文件输入。你必须使用另一种方法。见:http://api.jquery.com/serialize/

一种选择是将表单放入隐藏的iframe 并触发提交事件。

还可以看看 jQuery File Upload 插件:http://blueimp.github.com/jQuery-File-Upload/

【讨论】:

  • 我没有使用 ajax 并从 uploadfile.php 重定向回索引。这是“丑陋”,但很简单。感谢您的帮助。
  • @iliketocodenstuff 你看过插件了吗?它看起来很容易使用,并且在内部使用iframe 方法作为后备。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-13
  • 2010-10-18
  • 2017-08-25
  • 2014-05-07
相关资源
最近更新 更多