Tôi đang sử dụng jQuery để nhận ra một nhấp chuột vào một nút mà sau đó cháy một cuộc gọi đến một tập tin:CSV tải về Chrome - Lỗi: MIME loại text/csv
window.location.href = "url";
Tập tin này truy vấn cơ sở dữ liệu, trả về kết quả sau đó ghi nó vào một tệp CSV. Tôi đã tiêu đề sau thiết lập:
header('Content-Type: text/csv;');
header('Content-Disposition: attachment; filename=data.csv');
này hoạt động trên tất cả các trình duyệt Chrome trừ mà trả về lỗi sau đây trong giao diện điều khiển log "Resource hiểu là tài liệu nhưng chuyển với kiểu MIME text/csv: 'url'".
Điều kỳ lạ là nếu tôi gọi trực tiếp tệp, nó hoạt động trong tất cả các trình duyệt.
Code:
$fp = fopen('php://output', 'w');
header('Content-Type: text/csv;');
header('Content-Disposition: attachment; filename=data.csv');
header("Expires: 0");
header("Cache-control: private");
//Field Headers
$ncols = oci_num_fields($stid);
$headers_row = array();
for ($i = 1; $i <= $ncols; ++$i) {
$headers_row[] = oci_field_name($stid, $i);
}
while ($row = oci_fetch_array($stid, OCI_NUM+OCI_RETURN_NULLS)) {
if(!empty($row)){
if(!empty($headers_row)){
fputcsv($fp, $headers_row);
$headers_row = '';
}
fputcsv($fp, $row);
}
}
fclose($fp);
oci_close($conn);
Bất cứ ai có ý tưởng nào?
Bạn đang sử dụng bất kỳ biến SESSION nào trong phần truy vấn? –
@KasparMary Không, nó sử dụng GET. – Elliot
Chrome có cho phép tải xuống không? Trong chrome tôi nhận được điều này như một cảnh báo, không phải là một lỗi. Bạn không chắc chắn cách khắc phục nhưng tôi vẫn có thể tải xuống tệp của mình. –