Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: PHP: kirjoittaminen local-tiedostoon

mercier [17.02.2019 10:57:11]

#

Tämä koodi löytyi täältä (vastauksena):
https://stackoverflow.com/questions/15699301/export-mysql-data-to-excel-in-php
Toimii hyvin. Miten koodia voisi muokata (vai voisiko) niin, että tiedosto talletetaan aina käyttäjän C:levylle esim. tiedostoon C:/data/excelfilename.xls ?

$servername = "localhost";
$username = "root";
$password = "";
$dbname = "your_dbname";
//mysql and db connection

$con = new mysqli($servername, $username, $password, $dbname);

if ($con->connect_error) {  //error check
    die("Connection failed: " . $con->connect_error);
}
else
{

}


$DB_TBLName = "your_table_name";
$filename = "excelfilename";  //your_file_name
$file_ending = "xls";   //file_extention

header("Content-Type: application/xls");
header("Content-Disposition: attachment; filename=$filename.xls");
header("Pragma: no-cache");
header("Expires: 0");

$sep = "\t";

$sql="SELECT * FROM $DB_TBLName";
$resultt = $con->query($sql);
while ($property = mysqli_fetch_field($resultt)) { //fetch table field name
    echo $property->name."\t";
}

print("\n");

while($row = mysqli_fetch_row($resultt))  //fetch_table_data
{
    $schema_insert = "";
    for($j=0; $j< mysqli_num_fields($resultt);$j++)
    {
        if(!isset($row[$j]))
            $schema_insert .= "NULL".$sep;
        elseif ($row[$j] != "")
            $schema_insert .= "$row[$j]".$sep;
        else
            $schema_insert .= "".$sep;
    }
    $schema_insert = str_replace($sep."$", "", $schema_insert);
    $schema_insert = preg_replace("/\r\n|\n\r|\n|\r/", " ", $schema_insert);
    $schema_insert .= "\t";
    print(trim($schema_insert));
    print "\n";
}

Lebe80 [17.02.2019 11:25:01]

#

Käyttäjän: ei mitenkään

Palvelimen kyseiseen polkuun sen taas voisi helpommin tallentaa

mercier [17.02.2019 11:54:34]

#

Kiitos vahvistuksesta, tämä linja on siis closed.
Entä jos tekisi niin, että tallettaa palvelimelle (kuinka?) ja sitten kopioi sieltä paikalliselle levylle?

$image = file_get_contents('localhost/data/excelfilename.xls');
file_put_contents('./data/excelfilename.xls', $image);

Grez [17.02.2019 16:02:02]

#

Teet millä tahansa ohjelmointikielellä käyttäjän koneelle asennettavan ohjelman, joka lataa tiedoston ja takkettaa sen käyttäjän kovalevylle tuohon hakemistoon.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta