2016-07-08 1 views
0

을 사용하여 파일을 만들었습니다. header(),을 사용하여 액세스하려고 시도하면 파일 filename(1), filename(2) 등이 생성됩니다. (추신 : 내가 겹쳐 쓰면 이전 내용을 지우고 새 데이터를 추가 함).내가 PHP를 사용하여 Excel 파일을 덮어 쓸 수 있습니까?

<?php 

include 'PHPExcel.php'; 

require_once ("C:\\xampp\\htdocs\\excel_mailer_2\\PHPMailer-master\\class.phpmailer.php"); 

$path   = "C:\\Users\\Manish\\Downloads"; 
$file_name  = $_GET['file_name']; 

$DB_server  = "localhost"; 
$DB_username = "root"; 
$DB_password = ""; 
$DB_dbname  = "timetracker"; 
$DB_tablename = "tt_users"; 

$conn   = mysqli_connect ($DB_server, $DB_username, $DB_password, $DB_dbname); 

if (mysqli_connect_errno()) { 
    die ("Connection Failed!"); 
} 

$sql = "SELECT *"; 
$sql .= " FROM $DB_tablename"; 

if ($result = mysqli_query($conn,$sql)); 

else die("Couldn't execute query:<br />" . mysqli_error(). "<br />" . mysqli_errno()); 

$file_ending = ".xls"; 

$filename = $file_name.$file_ending; 

//header("Content-Type: application/vnd.ms-excel"); 
header("Content-Disposition: attachment; filename=$filename"); 



/*******Start of Formatting for Excel*******/ 

$sep  = "\t"; 
$flag  = true; 
$col_names = ""; 

while($row = mysqli_fetch_assoc($result)) { 
    $data_insert = ""; 
      foreach($row as $field=>$data) { 
     if ($flag) 
      $col_names  .= $field.$sep; 
     if(!isset($data)) 
      $data_insert .= "NULL".$sep; 
     elseif ($data != "") 
      $data_insert .= $data.$sep; 
     else 
      $data_insert .= "".$sep; 
    } 

    if ($flag) { 
     $flag  = !$flag; 
     $col_names .= "\t"; 
     echo (trim($col_names)); 
     echo "\n"; 
    } 
    $data_insert .= "\t"; 
    echo (trim($data_insert)); 
    echo "\n"; 
} 
?> 
+0

만을 사용하여 filenameheader에서 함수를 작성, 그 브라우저의 동작 –

+0

@ 마크 베이커, 당신이 말하는, 그래서 그것은 불가능이야? –

+0

나는 브라우저에 파일을 보내면 브라우저 자체 또는 클라이언트 사용자가 파일을 저장할 이름을 결정하고 서버 측 코드는 파일 이름을 "제안"할 수 있다고 말합니다. –

답변

0

안녕하세요 PHPExcel 또는 PHP와 함께 할이

header('Content-Disposition: attachment; filename="filename.xls"'); 
+0

내 질문을 편집하고 내 코드를 공유 –

+0

$ file_name에 무엇이 있는지 확인하려고 했습니까? – user1234

+0

'index.php'에서'$ file_name'을 통해 원하는 파일 이름을 보냈습니다. –

관련 문제