0

I wrote a vscode extension. Now you want to download a file in the vscode working directory by developing extensions. But no files were obtained through vscode vscode.Uri.file.

const downloadPanel = vscode.window.createWebviewPanel(
"view",
"下载",
vscode.ViewColumn.Two,
{
enableScripts: true,
retainContextWhenHidden: true,
}
)

    if (vscode.workspace.workspaceFolders === undefined) {
        throw new Error("not found!");
    }
    
    
    const filePath = vscode.workspace.workspaceFolders[0].uri.fsPath;
    let downloadContent = vscode.commands.registerCommand('download.click', () => {
        console.log("filePath = " + filePath);
    
        const onDiskPath = vscode.Uri.file(
            path.join(context.extensionPath, "resources","blockchain.svg")
        );
        // And get the special URI to use with the webview
        const catGifSrc = panel.webview.asWebviewUri(onDiskPath) + "";
    
                getWebviewContent(catGifSrc);
    
        function getWebviewContent(_src: string) {
            return '<html><head><script></script></script></head><body><div><a href="${_src}" download="contract.img">download</a></div></body></html>';
        }

enter image description here

When clicking the link, the file is not found! Currently, only nginx proxy can be used for full path downloading. Is there any other plan or solution?

Mike Lischke
  • 48,925
  • 16
  • 119
  • 181
Wang
  • 1
  • 1

0 Answers0