Мне удалось экспортировать мою базу данных в csv в качестве загружаемого файла. Однако то, что мне теперь нужно сделать, – это вместо того, чтобы создавать прямой файл .csv, который был загружен, мне нужно его просто сохранить в папку с именем «csv» на сервере. Вот мой код для текущего экспорта. Мне нужна помощь в ее сохранении на сервере. Я не правильно сохраняю данные.
// output headers so that the file is downloaded rather than displayed header('Content-Type: text/csv; charset=utf-8'); header('Content-Disposition: attachment; filename=data.csv'); // create a file pointer connected to the output stream $output = fopen('php://output', 'w'); // output the column headings fputcsv($output, array('tax_class_id','_product_websites')); // fetch the data mysql_connect('localhost:3036', 'x', 'x'); mysql_select_db('lato'); $rows = mysql_query('SELECT taxclass,productwebsite FROM product'); // loop over the rows, outputting them while ($row = mysql_fetch_assoc($rows)) fputcsv($output, $row); $filename = "data.csv"; // Trying to save file in server file_put_contents("download/" . $filename, "$header\n$rows");
Зачем писать в потоках, читать и пытаться сохранить контент? Я бы сделал это поменьше:
//Open a file in write-mode (he creates it, if it not exists) $fp = fopen('./my/path/on/server/data.csv', 'w'); // output the column headings fputcsv($fp, array('tax_class_id','_product_websites')); // fetch the data mysql_connect('localhost:3036', 'x', 'x'); mysql_select_db('lato'); $rows = mysql_query('SELECT taxclass,productwebsite FROM product'); // loop over the rows, outputting them while ($row = mysql_fetch_assoc($rows)) fputcsv($fp, $row); //close the handler fclose($fp);