Fix folder upload with input type=file webkitdirectory (fixes issue #2751)

This commit is contained in:
Marshall Greenblatt
2019-08-26 15:43:55 -04:00
parent 5574d1c32f
commit 8f0a202e0c
2 changed files with 9 additions and 8 deletions

View File

@@ -364,14 +364,14 @@ void CefFileDialogManager::OnRunFileChooserDelegateCallback(
if (!file_paths.empty()) { if (!file_paths.empty()) {
if (mode == blink::mojom::FileChooserParams::Mode::kUploadFolder) { if (mode == blink::mojom::FileChooserParams::Mode::kUploadFolder) {
base_dir = file_paths[0]; base_dir = file_paths[0].DirName();
} else { }
// Convert FilePath list to SelectedFileInfo list.
for (size_t i = 0; i < file_paths.size(); ++i) { // Convert FilePath list to SelectedFileInfo list.
auto info = blink::mojom::FileChooserFileInfo::NewNativeFile( for (size_t i = 0; i < file_paths.size(); ++i) {
blink::mojom::NativeFileInfo::New(file_paths[i], base::string16())); auto info = blink::mojom::FileChooserFileInfo::NewNativeFile(
selected_files.push_back(std::move(info)); blink::mojom::NativeFileInfo::New(file_paths[i], base::string16()));
} selected_files.push_back(std::move(info));
} }
} }

View File

@@ -66,6 +66,7 @@ Click a button to show the associated dialog type.
<br/><input type="button" onclick="show_confirm();" value="Show Confirm"> <span id="cm"></span> <br/><input type="button" onclick="show_confirm();" value="Show Confirm"> <span id="cm"></span>
<br/><input type="button" onclick="show_prompt();" value="Show Prompt"> <span id="pm"></span> <br/><input type="button" onclick="show_prompt();" value="Show Prompt"> <span id="pm"></span>
<br/>input type="file": <input type="file" name="pic" accept="text/*,.js,.css,image/*"> <br/>input type="file": <input type="file" name="pic" accept="text/*,.js,.css,image/*">
<br/>input type="file" (directory): <input type="file" webkitdirectory accept="text/*,.js,.css,image/*">
<br/><input type="button" onclick="show_file_dialog('fo', 'FileOpen');" value="Show File Open" disabled="true"> <span id="fo"></span> <br/><input type="button" onclick="show_file_dialog('fo', 'FileOpen');" value="Show File Open" disabled="true"> <span id="fo"></span>
<br/><input type="button" onclick="show_file_dialog('fom', 'FileOpenMultiple');" value="Show File Open Multiple" disabled="true"> <span id="fom"></span> <br/><input type="button" onclick="show_file_dialog('fom', 'FileOpenMultiple');" value="Show File Open Multiple" disabled="true"> <span id="fom"></span>
<br/><input type="button" onclick="show_file_dialog('fof', 'FileOpenFolder');" value="Show File Open Folder" disabled="true"> <span id="fof"></span> <br/><input type="button" onclick="show_file_dialog('fof', 'FileOpenFolder');" value="Show File Open Folder" disabled="true"> <span id="fof"></span>