laden Sie eine vorhandene Datei mit codeigniter

Ich bin versucht, eine website, die download-jpg -, png -, pdf -, docx-Datei sind diese hochgeladen, indem Sie ein admin.

hochladen von solchen Inhalten arbeitet ohne problem. beim hochladen ich einfügen, dass die Datei-Namen in der mysql-Tabelle als auch. mithilfe dieser Tabelle, die ich bin, zeigt die hochgeladene Datei-Namen für die Benutzer.

dies ist der code, den ich bin für die Anzeige dieser Dateien.

<?php
            if (!empty($downloads)) {
                foreach ($downloads as $val) {
                    ?>            <div class="col-md-3 col-sm-6 col-xs-12">
                        <div class="panel panel-danger">
                            <div class="panel-heading panel-title">
                                <?php echo $val['upload_description']; ?>
                            </div>
                            <div class="panel-body">
                                <?php echo $val['file_name']; ?>
                                <div class="clear-fix clear clearfix"></div>
                                <div id="download" onclick="downloadFile('<?php echo $val['file_name']; ?>');" class="btn btn-danger">Download</div>
                            </div>
                        </div>
                    </div>
                    <?php
                }
            }
            ?>

und das ist mein ajax-code

function downloadFile(str) {
                        //alert(str);
                        $.ajax({
                            type: 'POST',
                            url: 'downloadfiles',
                            data: {value: str},
                            success: function(data) {
                                alert('ok' + data);
                            }
                        });
                    }

wenn einige klicken Sie auf den download-button, mit ajax und jquery-ich bin das senden der Datei-name zu einer download_controller.
dies ist die Funktion in der download_controller Datei

public function download_files() {
    $fileName = $this->input->post('value');
    $file_path = 'uploaded/' . $fileName;
    $this->_push_file($file_path, $fileName);
 }

function _push_file($path, $name) {
        $this->load->helper('download');
        //make sure it's a file before doing anything!
        if (is_file($path)) {
            //required for IE
            if (ini_get('zlib.output_compression')) {
                ini_set('zlib.output_compression', 'Off');
            }

            //get the file mime type using the file extension
            $this->load->helper('file');
            $mime = get_mime_by_extension($path);
            //Build the headers to push out the file properly.
            header('Pragma: public');     //required
            header('Expires: 0');         //no cache
            header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
            header('Last-Modified: ' . gmdate('D, d M Y H:i:s', filemtime($path)) . ' GMT');
            header('Cache-Control: private', false);
            header('Content-Type: ' . $mime);  //Add the mime type from Code igniter.
            header('Content-Disposition: attachment; filename="' . basename($name) . '"');  //Add the file name
            header('Content-Transfer-Encoding: binary');
            header('Content-Length: ' . filesize($path)); //provide file size
            header('Connection: close');
            readfile($path); //push it out
            exit();
        }
    }

aber der Download nie ab. wenn Sie versuchen, laden Sie eine png-Datei, ich bin immer diese Art von Nachricht.

laden Sie eine vorhandene Datei mit codeigniter

kann jemand mir sagen, was falsch ist, was ich bin tun Sie hier?

danke

  • Haben Sie zum download der Datei durch Ajax? wenn Sie den link zu downloadfiles url, wird es laden Sie die Datei herunter und bleiben Sie auf der gleichen Seite.
  • haben Sie versucht, force_download?
  • können Sie bitte geben Sie mir den richtigen Weg, dies zu tun? noch konnte ich nicht richtig danke
  • ja, habe ich. aber die gleiche Sache geschehen.
  • Versuchen Sie es mit header('Content-Type: application/octet-stream'); statt header('Content-Type: ' . $mime);
  • immer noch das gleiche passiert.
  • Verdammt. Sie haben zum hinzufügen von ob_clean(); vor readfile().
  • Ich war für alle Klassen oder alle Institut für lernen, php jedes Ding war es selbst gelernt. also es könnte sein, schlechte Syntax und Fehler. wenn Sie mir geben können der beste Weg, das zu tun, ohne zu Bremsen php-code wird es hilfreich sein, zu mir. danke.
  • immer noch der gleiche Chef. 🙁
  • wenn Sie jetzt nicht die Antworten, bitte keine Kommentar zu Fragen. es gibt viele Menschen, die gerne anderen helfen außer dir. Danke.
  • Du hast Recht. Aber warum denkst du, niemand gibt dir Antwort?
  • jeder Kommentar hier wurde versucht, mir etwas Hilfe. Ich denke, Sie wird auch versucht, mir zu helfen. das ist, warum, fragte ich, mich zu korrigieren, wenn ich falsch Sache. keiner Weise mit diesen Bemerkungen, die ich mein problem lösen könnte. das bedeutet lernen. jeder kann nicht alles, was auf eigene. wir Menschen brauchen die Hilfe von anderen. wir sind keine Götter. danke.

InformationsquelleAutor Yasitha | 2014-03-06
Schreibe einen Kommentar