Загрузите Excel на мой взгляд, чтобы отобразить его в контроллере - PullRequest
0 голосов
/ 18 февраля 2020

Я хочу ... Загрузить файл Excel на мой сервер в моем представлении (только временный, потому что я буду только читать его, получать его данные и сохранять его в БД), затем использовать fopen () на моем контроллере и открыть тот файл, который пользователь загрузил в представлении. (Я использую CI)

Проблема ... Когда я пытаюсь открыть файл в моем контроллере, он не существует.

Что у меня есть ...

просмотр

<?php 
    print_r($_FILES);
    $archivo = fopen($_FILES["csv"]["tmp_name"], 'r');
?>

<?php echo form_open_multipart('',array('id' => 'envio', 'role'=>'form')); ?>
    <legend>Importar Datos</legend>
    <?php if (isset($alerta) && $alerta): ?>
        <div class="alert alert-danger">
            <?=$alerta ?>
        </div>

    <?php endif; ?>

    <div class="form-group">
        <label for="">Archivo CSV</label>
        <input type="file" class="form-control" id="csv" name="csv" placeholder="Archivo CSV">
    </div>
    <div class="checkbox">
        <label>
            <input type="checkbox" value="1" name="has_header" checked>
            El archivo contiene cabeceras
        </label>
    </div>
    <input type="hidden" name="key" value="1">

    <button type="submit" class="btn btn-primary">Enviar</button>
</form>


<script type="text/javascript">
    function al_inicio()
    {
        console.log("on submit set");
        $( '#envio-t' )
        .submit( function( e ) {
            console.log('submitting');
            e.preventDefault();
            $.ajax( {
                // url: 'http://host.com/action/',
                type: 'POST',
                data: new FormData( this ),
                processData: false,
                contentType: false,
                dataType: 'script'
            } );
        } );
    }

</script>

Controller_api

    function dev_get(){
        print_r($_FILES);
        $archivo = fopen($_FILES["csv"]["tmp_name"], 'r');
    }

Изображения

Это в Вид

Это в контроллере

...