doushu9253 2015-07-10 20:48
浏览 284
已采纳

将csv保存到服务器而不是下载

I have a php page that takes my query results and saves them to a csv, which then prompts to download the csv file (all which is working fine). What I need is for the file to save in the same location on the server but I cannot seem to get it to work. Any idea how to save to the server rather than download?

<?php

// Database Connection

include "connection.php"; //Connect to Database

// Fetch Record from Database

$output = "";
$sql = mysql_query("select '$select' from'$from' where'$where'"
$columns_total = mysql_num_fields($sql);

// Get The Field Name

for ($i = 0; $i < $columns_total; $i++) {
$heading = mysql_field_name($sql, $i);
$output .= '"'.$heading.'",';
}
$output .="
";

// Get Records from the table

while ($row = mysql_fetch_array($sql)) {
for ($i = 0; $i < $columns_total; $i++) {
$output .='"'.$row["$i"].'",';
}
$output .="
";
}

// Download the file

$filename = "file.csv";
header('Content-type: application/csv');
header('Content-Disposition: attachment; filename='.$filename);
exit;
?>
  • 写回答

1条回答 默认 最新

  • dsbruqxgt820011351 2015-07-10 20:57
    关注

    Just use file_put_contents() function to save your CSV file into your server:

    file_put_contents('yourfile.csv', $output);
    

    So your code would be like:

    <?php
    
    // Database Connection
    
    include "connection.php"; //Connect to Database
    
    // Fetch Record from Database
    
    $output = "";
    $sql = mysql_query("select '$select' from'$from' where'$where'"
    $columns_total = mysql_num_fields($sql);
    
    // Get The Field Name
    
    for ($i = 0; $i < $columns_total; $i++) {
    $heading = mysql_field_name($sql, $i);
    $output .= '"'.$heading.'",';
    }
    $output .="
    ";
    
    // Get Records from the table
    
    while ($row = mysql_fetch_array($sql)) {
    for ($i = 0; $i < $columns_total; $i++) {
    $output .='"'.$row["$i"].'",';
    }
    $output .="
    ";
    }
    
    // Download the file
    
    $filename = "file.csv";
    file_put_contents($filename, $output);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?