无法从服务器保存 Excel 文件
Unable to save Excel file from server
我使用 .NET 中的 Aspose 库和控制器生成一个 Excel 文件 returns 这个:
public async Task<IActionResult> GetFile()
{
byte[] bytes = null;
await Task.Run(() => bytes = GetBytes());
return new FileContentResult(bytes, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
{
FileDownloadName = "Template.xlsx"
};
}
在 React 方面,我从 redux 发送这样的请求
dispatch({
[CALL_API]: {
method: HttpMethod.GET,
types: [
types.GET_FILE_REQUEST,
types.GET_FILE_SUCCESS,
types.GET_FILE_ERROR,
],
endpoint: `getFile`,
useLoader: true,
responseType: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
},
}).then((action) => {
if (!action.error) {
download({
name: fileName,
data: action.response,
type: action.response.type,
});
}
});
我收到一个错误信息 "Unexpected token P in JSON at position 0"。在服务器上,我尝试保存文件并检查其在磁盘上的有效性,没问题。我还更改了正面和背面的响应类型值,但结果始终相同。
知道缺陷在哪里吗?
在服务器和客户端上进行这些更改后设法正确下载文件
// server
public async Task<IActionResult> GetFile()
{
Stream stream = null;
await Task.Run(() => stream = GetStream());
return File(stream, "application/octet-stream");
}
// client
dispatch({
[CALL_API]: {
method: HttpMethod.GET,
headers: {
'Content-Type': 'application/json',
},
types: [
types.GET_FILE_REQUEST,
types.GET_FILE_SUCCESS,
types.GET_FILE_ERROR,
],
endpoint: 'getFile',
useLoader: false,
cacheBust: false,
responseType: ResponseType.Blob,
},
}).then((data) => {
download({
name: fileName,
data: data.response,
type: data.response.type,
});
});
我使用 .NET 中的 Aspose 库和控制器生成一个 Excel 文件 returns 这个:
public async Task<IActionResult> GetFile()
{
byte[] bytes = null;
await Task.Run(() => bytes = GetBytes());
return new FileContentResult(bytes, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
{
FileDownloadName = "Template.xlsx"
};
}
在 React 方面,我从 redux 发送这样的请求
dispatch({
[CALL_API]: {
method: HttpMethod.GET,
types: [
types.GET_FILE_REQUEST,
types.GET_FILE_SUCCESS,
types.GET_FILE_ERROR,
],
endpoint: `getFile`,
useLoader: true,
responseType: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
},
}).then((action) => {
if (!action.error) {
download({
name: fileName,
data: action.response,
type: action.response.type,
});
}
});
我收到一个错误信息 "Unexpected token P in JSON at position 0"。在服务器上,我尝试保存文件并检查其在磁盘上的有效性,没问题。我还更改了正面和背面的响应类型值,但结果始终相同。
知道缺陷在哪里吗?
在服务器和客户端上进行这些更改后设法正确下载文件
// server
public async Task<IActionResult> GetFile()
{
Stream stream = null;
await Task.Run(() => stream = GetStream());
return File(stream, "application/octet-stream");
}
// client
dispatch({
[CALL_API]: {
method: HttpMethod.GET,
headers: {
'Content-Type': 'application/json',
},
types: [
types.GET_FILE_REQUEST,
types.GET_FILE_SUCCESS,
types.GET_FILE_ERROR,
],
endpoint: 'getFile',
useLoader: false,
cacheBust: false,
responseType: ResponseType.Blob,
},
}).then((data) => {
download({
name: fileName,
data: data.response,
type: data.response.type,
});
});