我已将现有数据转换为text / csv并能够在Chrome中下载该文件,但在iPad或Mac上使用Safari时,会打开一个名为“unknown”/“Untitled”的标签。这是我正在使用的代码 -
var hiddenElement = document.createElement('a');
hiddenElement.href = 'data:text/csv,'+ encodeURI(response);
hiddenElement.target = '_blank';
hiddenElement.download = 'purchase.csv';
hiddenElement.click();
无论如何,我能够将下载的文件显示为“purchase.csv”用于safari。
答案 0 :(得分:0)
试试这个
int id = Get<int>("id");
int? mayBeId = Get<int?>("id");
string idAsString = Get<int?>("id")?.ToString();
double idAsDouble = (double)Get<int>("id");
答案 1 :(得分:0)
如果数据是本地数据-轻松!
我们只使用window.URL.createObjectURL()
。让我们设置一些全局变量...
//var response = Already defined by OP! Not sure what it is, but it's data to save.
var mimetype = "text/csv";
var filename = "purchase.csv";
现在,我们只需将type
参数的标题设置为window.URL.createObjectURL()
...
a.href = window.URL.createObjectURL(new Blob([response], {
encoding: "UTF-8",
type: mimetype + ";charset=UTF-8",
}));
如果数据在Web上-仍然很容易,只需付出更多努力!
我们可以通过以下方式执行此操作:XMLHTTPRequest()
下载文件数据,window.URL.createObjectURL()
将数据转换为具有MIME类型标头的blob类型,然后正常进行设置a.download = filename;
和a.click();
。
将文件数据直接下载到JavaScript环境的抽象函数...
function load(url, callback) {
var xhr = new XMLHTTPRequest();
xhr.onreadystatechange = function () {
if (xhr.readyState === 4 && xhr.status === 200) callback(xhr.responseText);
};
xhr.open("GET", url, true);
}
然后下载数据,建立链接,然后单击它:
load("site.com/t.txt", function (contents) {
var a = window.document.createElement('a');
a.href = window.URL.createObjectURL(new Blob([response], {
encoding: "UTF-8",
type: mimetype + ";charset=UTF-8",
}));
a.download = filename;
document.body.appendChild(a);
a.click();
a.remove();
});