我正在使用Django开发一个web应用程序,它应该管理和处理本地intranet中的大量用户文件。由于Django应用程序和用户文件将托管在同一个本地网络中,因此没有必要上传文件,可以通过用户视图为Django提供文件的完整网络路径。
我意识到,由于不可能的原因,从浏览器获得完整的文件路径是安全性。
用户每天要处理的文件有一个(约150-200),所以要求用户手动复制粘贴完整文件路径到应用程序是不可能的。最初的设计方法假设用户将文件从Windows拖放到浏览器中的专用区域.
我有什么选择,社区?
我觉得有点困住了。需要一些建议。谢谢!
发布于 2020-01-30 16:55:13
好吧..。
我解决了我的问题。血比预期少得多,我很高兴。:)
首先,我将电子和一个最小的样板安装到我的项目中的一个新文件夹中。
在样板中有一个名为main.js (或index.js,取决于样板)的文件,它定义了电子应用窗口及其内容。内部是将内容加载到电子BrowserWindow对象的行:
mainWindow.loadFile(path.join(__dirname, 'index.html'));幸运的是,BrowserWindow对象确实有方法loadURL,它可以用来加载网页而不是本地html文件的:
mainWindow.loadURL('http://127.0.0.1:8000');这意味着Django呈现的所有页面都将在电子浏览器中显示,电子浏览器运行的是node.js,而不是标准的浏览器javascript引擎。因此,Django页面模板中的代码将完美地工作:
<h1 id="holder">DROP FILES HERE</h1>
<p id="dropped"></p>
<script>
const dropZone = document.getElementById('holder');
dropZone.addEventListener('drop', (e) => {
e.preventDefault();
e.stopPropagation();
let filesList = '\n';
for (const f of e.dataTransfer.files) filesList += f.path + '\n';
document.getElementById('dropped').innerHTML = `Full file paths: ${filesList}`;
});
dropZone.addEventListener('dragover', (e) => {
e.preventDefault();
e.stopPropagation();
});
</script>https://stackoverflow.com/questions/59937110
复制相似问题