diff --git a/packages/bruno-app/src/components/ResponsePane/ResponseSave/index.js b/packages/bruno-app/src/components/ResponsePane/ResponseSave/index.js index dae5bad4d..15eef651b 100644 --- a/packages/bruno-app/src/components/ResponsePane/ResponseSave/index.js +++ b/packages/bruno-app/src/components/ResponsePane/ResponseSave/index.js @@ -11,7 +11,7 @@ const ResponseSave = ({ item }) => { const saveResponseToFile = () => { return new Promise((resolve, reject) => { ipcRenderer - .invoke('renderer:save-response-to-file', response, item?.requestSent?.url) + .invoke('renderer:save-response-to-file', response, item?.requestSent?.url, item.pathname) .then(resolve) .catch((err) => { toast.error(get(err, 'error.message') || 'Something went wrong!'); diff --git a/packages/bruno-electron/src/ipc/network/index.js b/packages/bruno-electron/src/ipc/network/index.js index 822fd2e17..655edea68 100644 --- a/packages/bruno-electron/src/ipc/network/index.js +++ b/packages/bruno-electron/src/ipc/network/index.js @@ -1421,7 +1421,7 @@ const registerNetworkIpc = (mainWindow) => { ); // save response to file - ipcMain.handle('renderer:save-response-to-file', async (event, response, url) => { + ipcMain.handle('renderer:save-response-to-file', async (event, response, url, pathname) => { try { const getHeaderValue = (headerName) => { const headersArray = typeof response.headers === 'object' ? Object.entries(response.headers) : []; @@ -1467,8 +1467,9 @@ const registerNetworkIpc = (mainWindow) => { ); }; + const dirPath = path.dirname(pathname); const fileName = determineFileName(); - const filePath = await chooseFileToSave(mainWindow, fileName); + const filePath = await chooseFileToSave(mainWindow, path.join(dirPath, fileName)); if (filePath) { const encoding = getEncodingFormat(); const data = Buffer.from(response.dataBuffer, 'base64')