如何使用JQuery获取使用输入类型文件上载的文件的内容

时间:2013-05-16 07:19:40

标签: php jquery zend-framework

首先抱歉我的英语。

如何在Jquery中访问使用HTML->输入类型=“文件”标记上传的文件内容。

表单代码是: -

<div id="import_csv_dialog" style='display:none'>
        <form method='post' enctype='multipart/form-data'>
        <table>
        <tr><td colspan="2">&nbsp;</td></tr>
        <tr><td>File Location:&nbsp;</td>
        <td><input type="file" name="file" id="file"/></td>
        </tr>
        <tr><td colspan="2">&nbsp;</td></tr>
        <tr><td colspan="2">&nbsp;</td></tr>
        <tr><td colspan="2"><a style="cursor:pointer" class="css_btn" onclick="importCsv()">Import</a></td></tr>
        </table>
        </form>
        </div>

Jquery代码是: -

function importCsv()
{
if($('#file').val()=="")
{
    jQuery.noticeAdd({
                    text: 'Please select a file',
                    type: 'error'
                });
    return;
}

var file_id=$('#file').val();
var url = "<?php echo $this->baseUrl; ?>/Ordermanagement/importcsv/"+file_id;
var data = {file_id: file_id};

$.post(url, data, function(data, textStatus, XMLHttpRequest)
{
    $('#gridList7').trigger("reloadGrid");
    jQuery.noticeAdd({
                      text: 'Data Imported successfully',
                      type: 'success'
                    });
    $('#import_csv_dialog').dialog('close');
});

}

在这段代码中,我调用zend控制器函数importcsv,文件名作为参数。这是一个.csv文件。在这个php文件中,我将把这个csv文件的内容插入到我的数据库中。但是在这个函数中,我只能将文件名作为参数,而不是内容或路径。我怎样才能获得这个文件的内容?这是在$ _FILES [“file”] [“tmp_name”]的帮助下使用简单的PHP。如何在Jquery中获取tmp_name。

非常感谢

1 个答案:

答案 0 :(得分:2)

  

<script type="text/javascript">
$("#form_oferta").submit(function(event) {
var dados = $( form ).serialize();
$.ajax({
type: "POST",
contentType:attr( "enctype", "multipart/form-data" ),
url: "<?php echo site_url(); ?>adm/oferta_insert",
data: dados,
success: function( data )
{
alert( data );
}
});
return false;
}
</script>