2017-05-16 3 views
2

Im Folgenden ist der Code zum Hochladen einer CSV-Datei. Einige Dateien werden ordnungsgemäß hochgeladen, aber nur wenige werden nicht korrekt hochgeladen.i.e. Es heißt "Mitglieder Daten wurde erfolgreich eingefügt." Aber wenn ich db sehe, sind Datensätze nicht da Bitte überprüfen Sie den Code einmal und lassen Sie mich wissen, wenn es einen Fehler gibt.CSV-Datei wird nicht hochgeladen

<?php 
//load the database configuration file 
include 'csv_css.css'; 
include 'dbConfig.php'; 

if(!empty($_GET['status'])){ 
    switch($_GET['status']){ 
     case 'succ': 
      $statusMsgClass = 'alert-success'; 
      $statusMsg = 'Members data has been inserted successfully.'; 
      break; 
     case 'err': 
      $statusMsgClass = 'alert-danger'; 
      $statusMsg = 'Some problem occurred, please try again.'; 
      break; 
     case 'invalid_file': 
      $statusMsgClass = 'alert-danger'; 
      $statusMsg = 'Please upload a valid CSV file.'; 
      break; 
     default: 
      $statusMsgClass = ''; 
      $statusMsg = ''; 
     } 
} 
?> 
<div class="container"> 
<?php if(!empty($statusMsg)){ 
    echo '<div class="alert '.$statusMsgClass.'">'.$statusMsg.'</div>'; 
    } 
?> 
    <div class="panel panel-default"> 
    <div class="panel-heading"> 
     Members list 
     <a href="javascript:void(0);" onclick="$('#importFrm').slideToggle();">Import Members</a> 
    </div> 
    <div class="panel-body"> 
     <form action="import_usait.php" method="post" enctype="multipart/form-data" id="importFrm"> 
      <input type="file" name="file" /> 
      <input type="submit" class="btn btn-primary" name="importSubmit" value="IMPORT"> 
     </form> 
     <table class="table table-bordered"> 
      <thead> 
       <tr> 
        <th>ContactOwner</th> 
        <th>LeadSource</th> 
        <th>Firstname</th> 
        <th>Lastname</th> 
        <th>Accountname</th> 
        <th>Title</th> 
        <th>EmailID</th> 
        <th>Department</th> 
        <th>Industry</th> 
        <th>Phone</th> 
        <th>Mobile</th> 
        <th>Fax</th> 
        <th>DOB</th> 
        <th>Asssistant</th> 
        <th>Asstphone</th> 
        <th>ReportsTo</th> 
        <th>LinkedIn</th> 
        <th>Street</th> 
        <th>OtherStreet</th> 
        <th>City</th> 
        <th>State</th> 
        <th>Zip</th> 
        <th>Country</th> 
        <th>Description</th> 
       </tr> 
      </thead> 
      <tbody> 
<?php 
    //get records from database 
    $query = $db->query("SELECT * FROM contact ORDER BY id DESC"); 
    if($query->num_rows > 0){ 
     while($row = $query->fetch_assoc()){ ?> 
       <tr> 
        <td><?php echo $row['id']; ?></td> 
        <td><?php echo $row['ContactOwner']; ?></td> 
        <td><?php echo $row['LeadSource']; ?></td> 
        <td><?php echo $row['Firstname']; ?></td> 
        <td><?php echo $row['Lastname']; ?></td> 
        <td><?php echo $row['Accountname']; ?></td> 
        <td><?php echo $row['Title']; ?></td> 
        <td><?php echo $row['EmailID'];?></td> 
        <td><?php echo $row['Department'];?></td> 
        <td><?php echo $row['Industry'];?></td> 
        <td><?php echo $row['Phone']; ?></td> 
        <td><?php echo $row['Mobile']; ?></td> 
        <td><?php echo $row['Fax'];?></td> 
        <td><?php echo $row['DOB'];?></td> 
        <td><?php echo $row['Asssistant'];?></td> 
        <td><?php echo $row['Asstphone'];?></td> 
        <td><?php echo $row['ReportsTo'];?></td> 
        <td><?php echo $row['LinkedIn'];?></td> 
        <td><?php echo $row['Street'];?></td> 
        <td><?php echo $row['OtherStreet'];?></td> 
        <td><?php echo $row['City']; ?></td> 
        <td><?php echo $row['State'];?></td> 
        <td><?php echo $row['Zip'];?></td> 
        <td><?php echo $row['Country'];?></td> 
        <td><?php echo $row['Description'];?></td> 
       </tr> 
<?php 
     } 
    }else{ 
?> 
       <tr><td colspan="25">No member(s) found.....</td></tr> 
<?php } ?> 
      </tbody> 
     </table> 
    </div> 
    </div> 
</div> 

import_usait.php Datei:

<?php 
//load the database configuration file 
include 'dbConfig.php'; 

if(isset($_POST['importSubmit'])){ 

    //validate whether uploaded file is a csv file 
    $csvMimes = array('text/x-comma-separated-values', 'text/comma-separated-values', 'application/octet-stream', 'application/vnd.ms-excel', 'application/x-csv', 'text/x-csv', 'text/csv', 'application/csv', 'application/excel', 'application/vnd.msexcel', 'text/plain'); 

    if(!empty($_FILES['file']['name']) && in_array($_FILES['file']['type'],$csvMimes)){ 
     if(is_uploaded_file($_FILES['file']['tmp_name'])){ 

      //open uploaded csv file with read only mode 
      $csvFile = fopen($_FILES['file']['tmp_name'], 'r'); 

      //skip first line 
      fgetcsv($csvFile); 

      //parse data from csv file line by line 
      while(($line = fgetcsv($csvFile)) !== FALSE){ 
       //check whether member already exists in database with same Category 
       //insert member data into database 
       $db->query("INSERT INTO contact 
           (ContactOwner, LeadSource, Firstname, 
           Lastname,Accountname, Title, 
           EmailID, Department,Industry, 
           Phone, Mobile, Fax, DOB, Assistant, 
           Asstphone, ReportsTo, LinkedIn, Street, 
           OtherStreet, City, State, Zip, 
           Country, Description) 
         VALUES 
          ('".$line[0]."','".$line[1]."','".$line[2]. 
          "','".$line[3]."','".$line[4]."','".$line[5]. 
          "','".$line[6]."','".$line[7]."','".$line[8]. 
          ",'".$line[9]."','".$line[10].",'".$line[11]."','".$line[12].",'".$line[13]. 
          "','".$line[14].",'".$line[15]."','".$line[16].",'".$line[17]. 
          "','".$line[18].",'".$line[19]."','".$line[20].",'".$line[21]. 
          "','".$line[22].",'".$line[23]."')"); 
      } 

      //close opened csv file 
      fclose($csvFile); 

      $qstring = '?status=succ'; 
     }else{ 
      $qstring = '?status=err'; 
     } 
    }else{ 
     $qstring = '?status=invalid_file'; 
    } 
} 

//redirect to the listing page 
header("Location: usa_it.php".$qstring); 
+3

Informieren Sie sich über vorbereitete Anweisung zur Vermeidung von SQL-Injektion – Jens

+2

Vielleicht ist es ein Problem mit der Größe? – Jens

+1

Überprüfen Sie Ihre Protokolle. Wenn irgendwo etwas falsch ist, sollte es dort auftauchen. – junkfoodjunkie

Antwort

1

Ich habe das selbst nicht ausgeführt, aber ich denke, Ihr Mime-Check ein Fehl an dem Punkt ist, dass Sie es sind zu überprüfen. Sehen Sie, ob Sie zuerst is_uploaded_file() haben, dann überprüfen Sie den Pantomime. Mime-Typen zu diesem Zeitpunkt werden vom Browser gemeldet und können seltsam/falsch/fehlen oder gefährlich sein. Vertraue ihm nicht.

Verwandte Themen