php ile yüklenen dosya üzerinde fopen

1 Cevap php

Im bir dosya yükleme, ve sonra ona bir şeyler yapmak için fgetcsv kullanmaya çalışıyor.

Bu aşağıda benim senaryom. I dosya yükleme bölümlerini eklemeden önce her şey iyi çalışıyordu. Şimdi onun, herhangi bir hata görünmüyor onun sadece yüklenen verileri görüntüleyen değil.

Im benim "yüklenen dosyayı" haber alma ve dosya düzgün tasarruf edilir, ancak girişlerin sayısı için sayaç 0 gösteriyor.

if(isset($_FILES[csvgo])){

    $tmp = $_FILES[csvgo][tmp_name];

    $name = "temp.csv";

    $tempdir = "csvtemp/";

    if(move_uploaded_file($tmp, $tempdir.$name)){ echo "file uploaded<br>"; }

    $csvfile = $tempdir.$name;

    $fh = fopen($csvfile, 'r');
    $headers = fgetcsv($fh);
    $data = array();
    while (! feof($fh))
    {
        $row = fgetcsv($fh);
        if (!empty($row))
        {
            $obj = new stdClass;
            foreach ($row as $i => $value)
            {
                $key = $headers[$i];
                $obj->$key = $value;
            }
            $data[] = $obj;
        }
    }
    fclose($fh);

    $c=0;

    foreach($data AS $key){

            $c++;

            $phone = $key->PHONE;

            $fax = $key->Fax;

            $email = $key->Email;

            // do things with the data here

    }

    echo "$c entries <br>";
}

1 Cevap

Sen mutlak bir sunucu yolunu belirtmeniz gerekebilir.

$tempdir = $_SERVER['DOCUMENT_ROOT'] . "/csvtemp/";

Düzenleme: Ben sadece birkaç küçük değişikliklerle (diziniz anahtar adları mutlak yol ve ekleme tırnak) ile kodunu test ve iyi çalıştı. Deftere ne kapsamı dışında muhtemelen bir şey. Belki bir dosya izinleri hatası veya yükleme formu ile korkak bir şey.

Sadece bir düşünce, ancak PHP hata düzeyini yükselterek deneyebilirsiniz. Bu aksi takdirde fark edilmeden gitmişti şey ortaya çıkarmak olabilir.

ini_set("display_errors", 1);
ini_set("error_reporting", 2147483647);

Bu başarısız eğer suçlu bulana kadar, her zaman her yerde yansımaları, bir demet atma için çare olabilir.