Java 上载文件时,文件路径附近出现空指针异常
这里我使用struts2上传文件,当我要上传文件时,字符串文件路径附近出现空指针异常,任何人都可以帮我解决这个问题…我想找到我上传的文件的扩展名Java 上载文件时,文件路径附近出现空指针异常,java,struts2,Java,Struts2,这里我使用struts2上传文件,当我要上传文件时,字符串文件路径附近出现空指针异常,任何人都可以帮我解决这个问题…我想找到我上传的文件的扩展名 public class ImportAction extends ActionSupport implements ServletRequestAware { public File getUploadfile() { return uploadfile; } public
public class ImportAction extends ActionSupport implements ServletRequestAware {
public File getUploadfile() {
return uploadfile;
}
public String getUploadFileName() {
return uploadFileName;
}
public void setUploadFileName(String uploadFileName) {
this.uploadFileName = uploadFileName;
}
public void setUploadfile(File uploadfile) {
this.uploadfile = uploadfile;
}
private static final long serialVersionUID = 1L;
private LoginBean bean;
private File uploadfile;
public String getFileContentType() {
return fileContentType;
}
public void setFileContentType(String fileContentType) {
this.fileContentType = fileContentType;
}
private String uploadFileName;
private String fileContentType;
private HttpServletRequest servletRequest;
RegisterDAO dao = new RegisterDAO();
public LoginBean getBean() {
return bean;
}
public void setBean(LoginBean bean) {
this.bean = bean;
}
/**
*
* @return
* @throws
* Exception
*/
@SuppressWarnings("unchecked")
@Override
public String execute() throws Exception {
try {
String filePath = servletRequest.getSession().getServletContext().getRealPath("/");
System.out.println("Server path:" + filePath);
File fileToCreate = new File(filePath, this.uploadFileName);
FileUtils.copyFile(this.uploadfile, fileToCreate);
} catch (Exception e) {
e.printStackTrace();
addActionError(e.getMessage());
return INPUT;
}
Model m = new Model();
String result = m.fileimport(uploadfile, uploadFileName);
if (result.equals(SUCCESS)) {
return SUCCESS;
} else {
addActionError(getText(result));
return "failure";
}
}
@Override
public void validate() {
System.out.println("inside validate of LA");
}
@Override
public void setServletRequest(HttpServletRequest servletRequest) {
this.servletRequest = servletRequest;
}
}
您的
servletRequest
很可能为null,因此它会导致null指针异常。您可能必须通过上下文初始化它。这是错误的:
private File uploadfile;
private String uploadFileName;
private String fileContentType;
应将其(连同设置器)更改为:
.字段名称错误。改为
private File uploadfile;
private String uploadfileFileName;
private String uploadfileContentType;
//getters & setters
您是否获得了有效/非null的servletRequest对象?很抱歉,我没有收到此评论,谢谢。请检查您的servletRequest对象是否非null。如果检查,请尝试输入null。您正在讲述此正确的私有HttpServletRequest servletRequest;谢谢……您是否尝试过
servletRequest.getContextPath().getRealPath(“/”)
??@Andrea您刚刚错过了,名称是uploadfile
,因此其他参数将是UploadFileFileFileFileName
和uploadfileContentType
,因为您甚至没有,或者@白痴:你说得对,接得好。我仍然更喜欢上传,或者文件上传(camelCased),以避免像uploadfilefilefilename
这样的丑陋。
private File uploadfile;
private String uploadfileFileName;
private String uploadfileContentType;
//getters & setters