gpt4 book ai didi

java - Spring MVC 文件上传 - 客户端发送的请求在语法上不正确

转载 作者:太空宇宙 更新时间:2023-11-04 12:49:47 25 4
gpt4 key购买 nike

当我尝试访问以下方法时,出现(客户端发送的请求在语法上不正确)错误。

@RequestMapping ( value = "/prospect/prospectupdated", method = RequestMethod.POST )
public String prospectUpdated ( @ModelAttribute("prospect") CustomProspectList customProspectList, @RequestParam("consentForm") MultipartFile file ) throws IOException {

int id = customProspectList.getProsId();

String consentFormStatus = prospectService.consentFormStatus(id);

byte[] consentFormFile = file.getBytes();
String consentFormName = file.getOriginalFilename();
long consentFormSize = file.getSize();
String consentFormType = file.getContentType();

if ( consentFormStatus.equals("Y") && consentFormSize != 0 ){
prospectService.updateConsentForm(id, consentFormName, consentFormSize, consentFormFile, consentFormType);
}

return "success";
}

文件上传的JSP部分:

<form:input path="prosConsentForm" id="consentForm" type="file" style="display:initial" name="consentForm"/>

DAO实现方法:

@Override
public void updateConsentForm(int id, String consentFormName, long consentFormSize, byte[] consentFormFile, String consentFormType) {
Session session = sessionFactory.getCurrentSession();
String sql = "UPDATE ccm_prospect SET PROS_Consent_Form_Name = :ConsentFormName, PROS_Consent_Form_Size = :ConsentFormSize, PROS_Consent_Form_File = :ConsentFormFile, PROS_Consent_Form_Type = :ConsentFormType WHERE PROS_Id = :ProspectId";
SQLQuery query = session.createSQLQuery(sql);
query.setParameter("ConsentFormName", consentFormName);
query.setParameter("ConsentFormSize", consentFormSize);
query.setParameter("ConsentFormFile", consentFormFile);
query.setParameter("ConsentFormType", consentFormType);
query.setParameter("ProspectId", id);
query.executeUpdate();
}

在这里帮助我:

这是 customProspectList 模型类。

public class CustomProspectList {

private int prosId;

private String prosDOB;

private String prosTrackingStatus;

private String prosFirstName;

private String prosLastName;

private String prosMiddleName;

private String prosGender;

private String prosEmail;

private String prosMobilePhone;

private String prosHomePhone;

private String prosWorkPhone;

private String prosCommuMethod;

private String prosAddrLine1;

private String prosAddrLine2;

private String prosCity;

private String prosState;

private String prosZipCode;

private byte[] prosConsentForm;

private byte[] prosHippaForm;

private String prosConsentFormName;

private String prosHippaFormName;

private String prosConsentFormDate;

private String prosHippaFormDate;

private BigInteger prosConsentFormSize;

private BigInteger prosHippaFormSize;

private String provNPI;

private String faciName;

private String faciAddrState;

private String persFirstName;

private String persLastName;

private String persMiddleName;

private String prosConsentFormType;

//getters & setters

这是形式:

<form:form commandName="prospect" action="${pageContext.request.contextPath}/prospect/prospectupdated" method="post" enctype="multipart/form-data" accept-charset="utf-8">
........
</form:form>

最佳答案

尝试将您的文件绑定(bind)到:

private MultipartFile prosConsentForm;

而不是字节数组。

如果这不起作用,只需将记录器打开 org.springframework 进行调试

对于每个 40X 错误,spring 不会写入错误日志,但在调试时它会清楚地告诉你原因。

关于java - Spring MVC 文件上传 - 客户端发送的请求在语法上不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35941519/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com