3

まず、私の英語で申し訳ありません。

Jquery で HTML->Input type="file" タグを使用してアップロードされたファイルのコンテンツにアクセスするにはどうすればよいですか。

フォームコードは:-

<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 を取得するにはどうすればよいですか。

どうもありがとう

4

1 に答える 1

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>

于 2013-05-16T08:14:26.223 に答える