Codeignter 中 AJAX 上传文件

构造表单

首先,页面 HTML 结构如下:

<?php echo form_open_multipart('upload/upload_file'); ?>
  <input type="file" name="userfile" size="20" />
  <input type="submit" value="upload" />
</form>

这种结构其实不好,因为从代码上看不到 <form …> 标签,HTML 标签的完整性被破坏了。

最终,PHP 实际输出的结果是:

<form action="http://example.com/upload/upload_file" method="post" accept-charset="utf-8" enctype="multipart/form-data">
  <div style="display:none">
    <input type="hidden" name="fcs_csrf_token" value="32bfdyeikg0d68dd3c42fd207de91d3">
  </div>
  ...
</form>

注意,其中增加了 csrf 验证。

jQuery ajax 上传文件

$("form#data").submit(function(e) {
    e.preventDefault();    
    var formData = new FormData(this);

    $.ajax({
        url: window.location.pathname,
        type: 'POST',
        data: formData,
        success: function (data) {
            alert(data)
        },
        cache: false,
        contentType: false,
        processData: false
    });
});

猜你喜欢

转载自blog.csdn.net/henryhu712/article/details/88075349