WEB应用前后端分离实践 关键词:rest架构+跨域访问+JWT校验 -CSDN论坛 - 003

三、补充点   jersey框架文件上传方式,包含带有参数上传[/b]
       通过form表单提交方式进行图片上传
     (一)、页面
        

XML/HTML code?

1

2

3

4

5

6

7

8

9

<`div class="header" style="background-color:#14C2FF;width:400px,height:800px; border:1px red solid;"`>

<`form action="http://localhost:8080/ichanoDeveloper/product/uploadProductImg" method="post" enctype="multipart/form-data"`>  

<`p`>  

<`input type="file"  class="sys_input"     name ="productLogo"  id=`"productLogo"   />

剩productId:<`input type="text" name="productId" value="20" id="productId"/><br />  `

</`p`>  

<`input type="submit" value="上传" />  `

</`form`> 

</`div`>

 
    (二)处理代码

Java code?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

/** 

* @Title: uploadFileCheck 

* @Description: TODO(这里用一句话描述这个方法的作用) 

* @param @param fileInputStream

* @param @param disposition

* @param @param request

* @param @return    设定文件 

* @return String    返回类型 

* @throws 

*/

@POST

@Path`("/uploadFileCheck")`

@Consumes`(MediaType.MULTIPART_FORM_DATA)`

@Produces`(MediaType.TEXT_PLAIN)`

public Response uploadTemp( `@FormDataParam("updateLicense"final InputStream uploadedInputStream,`

@FormDataParam`("updateLicense"`final FormDataContentDisposition fileDetail,

@FormDataParam`( "surplusCount"final` `List<FormDataBodyPart> keywordObjs,@Context HttpServletRequest request ) {`

String fileName = Calendar.getInstance().getTimeInMillis()+ fileDetail.getFileName();  

ZyUploadLicenseFileResponseVo zyUploadLicenseFileResponseVo = `new ZyUploadLicenseFileResponseVo();`

ZyUploadLicenseFileRequestVo zyUploadLicenseFileRequestVo = `new ZyUploadLicenseFileRequestVo();`

if (keywordObjs != `null && ! keywordObjs.isEmpty()) {`

for (FormDataBodyPart keywordObj : keywordObjs) {

String keyName = keywordObj.getName();

if`("surplusCount".equals(keyName)){`

zyUploadLicenseFileRequestVo.setSurplusCount(keywordObj.getValueAs(String.`class`));

break`;`

}

}

}

String accessToken = TokenUtil.getAccessToken(request.getHeader(`"auth_token"`),KeyUtil.getKey(context));

Key key= KeyUtil.getKey(context);

if (TokenUtil.isValid(accessToken,key)){

zyUploadLicenseFileRequestVo.setInputStream(uploadedInputStream);

zyUploadLicenseFileRequestVo.setFileName(fileName);

zyUploadLicenseFileResponseVo= zyLicenseApiService.uploadBatchExcel(zyUploadLicenseFileRequestVo);

}`else`{

zyUploadLicenseFileResponseVo.setCode(Constants.AUTH_RESULT_FILE_SESSIONOUT);

zyUploadLicenseFileResponseVo.setDesc(`"Session is out!"`);

}

logger.info(`"The responseJsonObject:" + JSONObject.toJSONString(zyUploadLicenseFileResponseVo));`

return Response.status(`200).entity(JSONObject.toJSONString(zyUploadLicenseFileResponseVo)).type(new MediaType(CommonStr.APPLICATION, CommonStr.JSON, CommonStr.UTF8)).build();`

}

@Override

public ZyUploadLicenseFileResponseVo uploadBatchExcel(ZyUploadLicenseFileRequestVo zyUploadLicenseFileRequestVo) {

ZyUploadLicenseFileResponseVo zyUploadLicenseFileResponseVo = `new ZyUploadLicenseFileResponseVo();`

//  参数有误

if (!zyUploadLicenseFileRequestVo.isValid()) {

logger.error(`"The argument is null!"`);

zyUploadLicenseFileResponseVo.setCode(Constants.AUTH_RESULT_FILE_2001);

zyUploadLicenseFileResponseVo.setDesc(`"The argument is invalid!!"`);

return zyUploadLicenseFileResponseVo;

}

String fileName = zyUploadLicenseFileRequestVo.getFileName();

List licenseInfo = `new ArrayList<String>();`

if`(!fileName.contains("xls")){`

logger.error(`"The fileName[{}]  is error!"`, fileName);

zyUploadLicenseFileResponseVo.setCode(Constants.UPLOAD_FAILE_9002);

zyUploadLicenseFileResponseVo.setDesc(`"The file fomart is faile!!"`);

return zyUploadLicenseFileResponseVo;

}

try {

workbook = `new XSSFWorkbook(zyUploadLicenseFileRequestVo.getInputStream());`

XSSFSheet sheet = workbook.getSheetAt(`0);   //获取第一个sheet`

int rows = sheet.getPhysicalNumberOfRows();`//行数`

int cols = sheet.getRow(`1).getPhysicalNumberOfCells();//列数`

if`(cols != 2){`

logger.error(`"The file fomart is faile!"`);

zyUploadLicenseFileResponseVo.setCode(Constants.UPLOAD_FAILE_9002);

zyUploadLicenseFileResponseVo.setDesc(`"文件格式错误!!"`);

return zyUploadLicenseFileResponseVo;

}

//校验上传的excel是否为标准模版

if`(rows>0){`

//有数据

for`(int` `i=3`;i<rows;i++){

//从第四行开始检索

String tempLicense = String.valueOf(sheet.getRow(i).getCell(`1`));

if`(tempLicense.length()<=32){`

licenseInfo.add(tempLicense);

}

}

}

int surplusLicenseInt = Integer.parseInt(zyUploadLicenseFileRequestVo.getSurplusCount());

zyUploadLicenseFileResponseVo.setCode(Constants.AUTH_RESULT_SUCCESS);

zyUploadLicenseFileResponseVo.setDesc(`"Upload File Success!"`);

zyUploadLicenseFileResponseVo.createInstanceData().setLicenseList(licenseInfo);

return zyUploadLicenseFileResponseVo;

`catch (IOException e) {`

e.printStackTrace();

logger.error(`"解析上传文件失败!"`);

zyUploadLicenseFileResponseVo.setCode(Constants.UPLOAD_FAILE_9002);

zyUploadLicenseFileResponseVo.setDesc(`"解析上传文件失败!"`);

return zyUploadLicenseFileResponseVo;

}

好,至此,项目已经可以跑起来。但是还没有进行集群部署,后面还要进行测试。有问题我会继续补上。

参考文献:
http://blog.csdn.net/li563868273/article/details/50277359
http://www.open-open.com/lib/view/open1433995002942.html
http://www.tuicool.com/articles/ZvA36nz


Original url: Access
Created at: 2020-09-02 17:59:13
Category: default
Tags: none

请先后发表评论
  • 最新评论
  • 总共0条评论