2014-09-02 25 views
0

我想從html文件輸入元素中獲取文件。我在輸入類型文件中設置了name屬性。 但我不明白。請幫我解決這個問題。 我的PHP編碼是:添加csv文件數據到mysql表的問題

function csv_to_array($filename='', $delimiter=',') 
{ 
    if(!file_exists($filename) || !is_readable($filename)) 
    return FALSE; 
    $header = NULL; 
    $data = array(); 
    if (($handle = fopen($filename, 'r')) !== FALSE) 
    { 
     while (($row = fgetcsv($handle, 10000, $delimiter)) !== FALSE) 
     { 
      if(!$header) 
      $header = $row; 
      else 
      $data[] = array_combine($header,$row); 
     } 
     fclose($handle); 
    } 
    return $data; 
} 
if(isset($_POST['submit'])) 
{ 
    $count=0; 
    $file_name=basename($_FILES['csv']['name']); 
    $upload_path="upload_files/".time()."_".$file_name; 
    move_uploaded_file($_FILES['csv']['tmp_name'], $upload_path); 
    $file_path = 'upload_files/'.$file_name; 
    $result = csv_to_array($file_path); 
    foreach($result as $results) 
    { 
     $question=addslashes($results['question']); 
     $que_img=addslashes($results['question_img']); 
     $img_for=addslashes($results['img_for']); 
     $option1=addslashes($results['option1']); 
     $option2=addslashes($results['option2']); 
     $option3=addslashes($results['option3']); 
     $option4=addslashes($results['option4']); 
     $corrct_ans=addslashes($results['correctanswer']); 
     $justification=addslashes($results['justification']); 
     $subject_id=$_POST['subjectid']; 
     $pgroup=addslashes($results['pgroup']); 
     $karea=addslashes($results['karea']); 
     $mock=addslashes($results['mock']); 
     $email_ins = "insert into online_questions(question,question_img,img_for,option1,option2,option3,option4,correctanswer,justification,subjectid,pgroup,karea,mock) values ('$question','$que_img','$img_for','$option1','$option2','$option3','$option4','$corrct_ans','$justification','$subject_id','$pgroup','$karea','$mock')"; 
     if(mysql_query($email_ins)) 
     { 
      $count++; 
     } 
    } 
    if($count!=0) 
    { 
     header("location:upload_questions.php?msg=success"); 
    } 
    else 
    { 
     //header("location:upload_questions.php?msg=error"); 
     $rightside .= '<div class="msg-error"><h4>Error:'.mysql_error().'</h4></div>'; 
    } 
} 
else 
{ 
    $rightside .= '<form method="POST"> 
    <fieldset><legend>Upload questions</legend> 
    <ul class="align-list"><li><label for="test-username">Select Subject :</label> 
    <select name="subjectid" class="required"> 
     <option>-----Select-----</option> 
     <option value="8">PMP Preparatory Program</option> 
     <option value="9">Primavera</option> 
     <option value="10">Microsoft Project [MSP]</option> 
    </select></li> 
    <li><label for="test-username">Upload CSV : </label><input name="csv" type="file" /></li> 
    <li><label for="test-username"></label><input type="submit" name="submit" value="Submit" /></li> 
    </fieldset></form>'; 
} 

我怎樣才能得到上面的HTML代碼的文件和文件名。

回答

0

試試這個:EDITED

<?php 
function csv_to_array($filename='', $delimiter=',') 
{ 
    if(!file_exists($filename) || !is_readable($filename)) 
    return FALSE; 
    $header = NULL; 
    $data = array(); 
    if (($handle = fopen($filename, 'r')) !== FALSE) 
    { 
     while (($row = fgetcsv($handle, 10000, $delimiter)) !== FALSE) 
     { 
      if(!$header) 
      $header = $row; 
      else 
      $data[] = array_combine($header,$row); 
     } 
     fclose($handle); 
    } 
    return $data; 
} 
if(isset($_POST['submit'])) 
{ 
    $count=0; 
    $file_name=$_FILES['csv']['name']; 
    echo $_FILES['csv']['name']; 
    $upload_path="upload_files/".time()."_".$file_name; 
    move_uploaded_file($_FILES['csv']['tmp_name'], $upload_path); 
    $file_path = 'upload_files/'.$file_name; 
    echo $file_path; 
    $result = csv_to_array($file_path); 
    foreach($result as $results) 
    { 
     $question=addslashes($results['question']); 
     $que_img=addslashes($results['question_img']); 
     $img_for=addslashes($results['img_for']); 
     $option1=addslashes($results['option1']); 
     $option2=addslashes($results['option2']); 
     $option3=addslashes($results['option3']); 
     $option4=addslashes($results['option4']); 
     $corrct_ans=addslashes($results['correctanswer']); 
     $justification=addslashes($results['justification']); 
     $subject_id=$_POST['subjectid']; 
     $pgroup=addslashes($results['pgroup']); 
     $karea=addslashes($results['karea']); 
     $mock=addslashes($results['mock']); 
     $email_ins = "insert into online_questions(question,question_img,img_for,option1,option2,option3,option4,correctanswer,justification,subjectid,pgroup,karea,mock) values ('$question','$que_img','$img_for','$option1','$option2','$option3','$option4','$corrct_ans','$justification','$subject_id','$pgroup','$karea','$mock')"; 
     if(mysql_query($email_ins)) 
     { 
      $count++; 
     } 
    } 
    if($count!=0) 
    { 
     header("location:upload_questions.php?msg=success"); 
    } 
    else 
    { 
     //header("location:upload_questions.php?msg=error"); 
     $rightside .= '<div class="msg-error"><h4>Error:'.mysql_error().'</h4></div>'; 
    } 
} 
else 
{ 
    $rightside .= '<form method="post" accept-charset="utf-8" enctype="multipart/form-data"> 
    <fieldset><legend>Upload questions</legend> 
    <label for="test-username">Select Subject :</label> 
    <select name="subjectid" class="required"> 
     <option>-----Select-----</option> 
     <option value="8">PMP Preparatory Program</option> 
     <option value="9">Primavera</option> 
     <option value="10">Microsoft Project [MSP]</option> 
    </select> 
    <label for="test-username">Upload CSV : </label><input name="csv" type="file" /> 
    <label for="test-username"></label><input type="submit" name="submit" value="Submit" /> 
    </fieldset></form>'; 
} 
echo $rightside; 

?> 

我已刪除裏的你可以添加them.the問題是與你的表單標籤我已經改變了它。

<form method="post" accept-charset="utf-8" enctype="multipart/form-data">