如何让网页记得上次打开的文件目录?
问题描述:
我有一个基于Qt WebEngineView(QML)的Windows应用程序。我的应用程序中有网页。有些网页需要用户使用选择文件:如何让网页记得上次打开的文件目录?
<input type="file" />
我想知道,有可能是我的应用程序要记得选择一个文件的最后一个目录的用户?
我曾尝试:
- 设定值属性
<input>
在我的网页,但它不是由浏览器允许编程设置,见Set default value for a input file form。 - 在Chrome中打开我的网页,Chrome可以记住上一个目录。但在我的应用程序中,每次打开应用程序的安装目录。
- 在本机打开文件对话框中,我可以设置初始目录,但是可以对网页中的打开文件对话框执行相同操作吗?
我知道这可能是不可能的。任何建议和解决方法,赞赏。
答
WebEngineView
元素有一个signal用于Web内容请求文件对话框。
FileDialog
元素有一个property设置(和获取)该文件夹。
所以这些方针的东西应该工作
FileDialog {
id: dialog
property var request
onRejected: request.dialogReject()
onAccepted: {
yourSavedFolder = folder;
request.dialogAccept(files);
}
}
WebEngineView {
onFileDialogRequested: {
request.accepted = true; // inhibit default dialog
dialog.request = request;
dialog.folder = yourSavedFolder;
dialog.open()
}
}
这只是一个粗略的草图,您还需要处理请求对象的开放模式等
非常有帮助! **注意:** ** 1。**'onFileDialogRequested'需要Qt 5.8。 ** 2。**'request.dialogAccept(files);'应该是'request.dialogAccept(fileUrl.toString());'(在单选模式下) –