javascript - 使用 javascript 应用程序将 JSON 文件保存到服务器
问题描述
我正在开发一个简单的 Javascript 应用程序,其中用户有一些图像(存储在我的机器中),他能够对它们进行注释,然后将注释保存为 JSON 文件。
该应用程序非常轻巧简单,它不是应用服务器。但是,我需要将这些 JSON 文件保存到充当服务器的机器上。
由于我不能将 Javascript 用于 IO,是否有任何简单的方法来保存这些文件而无需实现应用服务器?
我Blob
以前是下载文件的。
function project_save_confirmed(input) {
if ( input.project_name.value !== _onco_settings.project.name ) {
project_set_name(input.project_name.value);
}
// onco project
var _onco_project = { '_onco_settings': _onco_settings,
'_onco_img_metadata': _onco_img_metadata,
'_onco_attributes': _onco_attributes };
var filename = input.project_name.value + '.json';
var data_blob = new Blob( [JSON.stringify(_onco_project)],
{type: 'text/json;charset=utf-8'});
save_data_to_local_file(data_blob, filename);
user_input_default_cancel_handler();
}
function save_data_to_local_file(data, filename) {
var a = document.createElement('a');
a.href = URL.createObjectURL(data);
a.download = filename;
a.click();
}
有什么建议吗?
亲切的问候!
解决方案
复制粘贴自:从浏览器下载 JSON 对象作为文件
function downloadObjectAsJson(exportObj, exportName){
var dataStr = "data:text/json;charset=utf-8," + encodeURIComponent(JSON.stringify(exportObj));
var downloadAnchorNode = document.createElement('a');
downloadAnchorNode.setAttribute("href", dataStr);
downloadAnchorNode.setAttribute("download", exportName + ".json");
document.body.appendChild(downloadAnchorNode); // required for firefox
downloadAnchorNode.click();
downloadAnchorNode.remove();
}
我相信这可以实现您想要的,只需确保设置了正确的标题,将其推送到<a>
标签,click()
然后
推荐阅读
- javascript - 如何在 Nuxt 中处理 setInterval
- visual-studio - 从 Visual Studio 部署到 Hololens 2 模拟器工作正常,但我无法通过 USB 部署到设备本身
- crystal-reports - 水晶报表显示线
- node.js - 错误:14 不可用:未建立连接 - Cloud Firestore
- python-3.x - 如何使用 pandas Python 合并两个数据框
- python - 如何在 python 中对包含数十亿条记录的非常大的 .csv 文件进行排序?
- python - Dask-SSH 集群添加私钥
- typescript - 如何在 Typescript 中的另一个类的构造函数中调用一个类?
- tomcat9 - ISAPI 重定向器与 Tomcat9
- javascript - 对导入的 SVG 文件使用 ref 属性