この JavaScript 関数は JSON を受け取り、それを XML にフォーマットします。データは長い XML 文字列で、ユーザーがダウンロードできるようにしたいと考えています。私は ajax を使用してデータを php ページに投稿しようとしていますが、これによりファイルが作成され、ユーザーがそれをダウンロードできるようになります。
json2xml(eval(data));
JS
$.ajax({
type: 'POST',
url: 'download/functions.php',
data: xml2,
dataType: XML
});
この PHP 関数を使用してファイルに書き込みましたが、js 変数をこの関数に送信する方法がわかりません。
$data = $_POST['xml2'];
writetoxml($data, 'WF-XML'.$current. '.xml');
function writetoxml($stringData, $myFile) {
$current = date('m-d-Y-g-i-s');
$fh = fopen('download/'.$myFile, 'w') or die("can't open file");
fwrite($fh, $stringData);
fclose($fh);
download($file);
}
function downloadFile($file) {
if(!file)
{
// File doesn't exist, output error
die('file not found');
}
else
{
// Set headers
header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-Disposition: attachment; filename=$file");
header("Content-Type: application/csv");
header("Content-Transfer-Encoding: binary");
// Read the file from disk
readfile($file);
exit;
}
}
これは現在、サーバー 500 エラーを返しています。