Django 服务端在返回前,设置response 的 Content-Disposition
def hello_attachment(request):
print 'In the hello_attachment, To test the attachment'
students = {'name':'rob','age':22, 'subjects':['math', 'english'], 'comment':'the mock data is from django server'}
response = HttpResponse(json.dumps(students), content_type="application/json")
# https://blog.csdn.net/chouzhao7980/article/details/100813248
response['Content-Disposition'] = "attachment; filename=django_end.txt"
return response
Java 的示例:
@GetMapping("/dbExport/result/")
public OpenResult<DbExport> getDbImportResult(@RequestParam(name = "workOrderNo") String workOrderNo,
HttpServletResponse response) {
log.info("In getDbImportResult: workOrderNo = {}", workOrderNo);
PermissionRecord record = service.findByWorkOrderNo(workOrderNo);
DbExport dbExport = JacksonUtils.parse(record.getResult(), DbExport.class);
String attachmentFile = String.format("attachment;filename=%s_export.txt", dbExport.getDbName());
response.addHeader("Content-Disposition", attachmentFile);
response.setContentType("application/json");
return OpenResult.success(dbExport);
}
@PostMapping("/dbImport")
public OpenResult<String> applyDBImport(@RequestParam(name = "uniqId") String uniqId,
@RequestParam("import_sql") MultipartFile file) {
if (file.isEmpty()) {
throw ClusterException.asException(ResultEnum.PARAM_ERROR, "上传失败,请选择文件");
}
try {
PermissionRecord record = service.buildDefault(PermissionTypeEnum.DB_IMPORT, null);
// 增加详情里需要展示的内容
String jsonStr = myDbService.readImportFile(file);
.... ...
} catch (Exception e) {
log.error("for applyDBImport failed: {}", e.toString());
for(StackTraceElement stack : e.getStackTrace()) {
log.error("for applyDBImport stack = {}", stack);
}
return OpenResult.error(ResultEnum.CREATE_WORKORDER_FAILED.getCode(), ResultEnum.CREATE_WORKORDER_FAILED.getMessage());
}
return OpenResult.success(ResultEnum.OK.getMessage());
}
public String readImportFile(MultipartFile file) throws IOException {
String importData = "";
Reader reader = null;
try {
reader = new InputStreamReader(file.getInputStream(), "Utf-8");
int ch = 0;
StringBuffer sb = new StringBuffer();
while ((ch = reader.read()) != -1) {
sb.append((char) ch);
}
importData = sb.toString();
log.info("importData = {}", importData);
} catch (Exception e) {
log.error(e.toString());
} finally {
if (reader != null) {
reader.close();
}
}
return importData;
}