我在Delphi 10.1的项目中使用CEF 3.2454.1344.g2782fb8(Chromium 45.0.2454.101)。 (我必须使用相当旧版本的CEF / Chromium来向后兼容WinXP)。所以我的问题是:当我点击"上传"任何网站上的按钮我得到一个打开文件对话框,并且必须选择要上传的文件。可以不向用户显示此对话框,但是给CEF一些预先指定的文件呢?
更新:我已尝试通过OnFileDialog执行此操作,这正是我需要的:点击"上传"按钮我在网页上显示了一个文件,但是Chromium在此之后立即崩溃了。有什么想法吗?
procedure TMainForm.crm_asFileDialog(Sender: TObject;
const browser: ICefBrowser; mode: TCefFileDialogMode;
const title, defaultFilePath: ustring; acceptFilters: TStrings;
selectedAcceptFilter: integer; const callback: ICefFileDialogCallback;
out Result: Boolean);
var
file_list: tstringlist;
begin
file_list := tstringlist.Create;
file_list.Add
('https://testsite.com/my_image.jpg');
callback.Cont(0, file_list);
file_list.Free;
Result := true;
end;
更新2:表单的HTML代码
<form method="post" enctype="multipart/form-data">
<input accept="image/*" type="file" name="file1" />
<input accept="image/*" type="file" name="file2" />
<input accept="image/*" type="file" name="file3" />
</form>