Вот код
{
const response = await this.props.appActions.fetchFileFromMongo(filename)
const blob = new Blob([response], { type: 'application/pdf' })
alert('file size ' + blob.size) // display 73214 so (70ko)
const url = window.URL.createObjectURL(blob)
const link = document.createElement('a')
link.href = url
link.download = `${type}-${filename}.pdf`
setTimeout(() => {
link.click()
this.setState({ loading: false })
}, 1000)
}
код действия приведения:
export function fetchFileFromMongo (filename) {
return dispatch => {
dispatch(fetchFileFromMongoRequest())
return fetch(`${Constants.API_URL}file/${filename.toLocaleLowerCase()}`, {
method: 'GET',
mode: 'cors',
type: 'json',
headers: new Headers({
'Accept': 'application/json',
'Content-Type': 'application/json',
'X-Access-Token': localStorage.getItem('token')
})
})
.then(checkHttpStatus)
.then((response) => {
return response.blob() // this was a problem but i fixed it long ago
})
.then((response) => {
dispatch(fetchFileFromMongoSuccess(response))
return response
})
.catch((error) => {
console.dir(error)
dispatch(displayErrorDialog(error, Constants.FETCH_FILE_FAIL))
return error
})
}
}
В результате получается поврежденный файл PDF (70 КБ) вместо правильных файлов размером 22 КБ, которые я сижувнутри монго (я проверил файл перед вставкой), кто-то может указать мне правильное направление?Я понятия не имею, что может происходить, тот же код, который использовался для бесперебойной работы всего несколько месяцев назад
Любая помощь будет оценена