파일 업로드를 위해 commonsIO 및 Jar를 사용하여 Java에서 이미지를 업로드하려고했지만 문제는 다음과 같이 내 양식에 두 개의 확인란이 있다는 것입니다.
<div style="float:left">
<input name="Mcheckbox" type="checkbox" value="Mobile"/>
Mobile
</div>
<div style="float:right">
<input name="Echechkbox" type="checkbox" value="Email"/>
Email
</div>
그리고 찾아보기 옵션 :
Upload Image : <INPUT TYPE="file" NAME="file" value="file"></input>
그리고 내 서블릿에서 다음과 같이하고 있습니다.
ServletFileUpload upload = new ServletFileUpload(new DiskFileItemFactory());
List<FileItem> files = new ServletFileUpload(new DiskFileItemFactory()).parseRequest(request);
Iterator it = files.iterator();
그리고:
while (it.hasNext()) {
FileItem fi = (FileItem) it.next();
if (fi.isFormField()) {
if (fieldname.compareTo("Mcheckbox") == 0) {
System.out.println("checkbox value is " + fieldvalue);
mymobilepass = fieldvalue;
} else if (fieldname.compareTo("Echeckbox") == 0) {
System.out.println("checkbox value is " + fieldvalue);
myemailpass = fieldvalue;
}
} else {
InputStream is = fi.getInputStream();
FileOutputStream fos = new FileOutputStream(path + "\\" + fi.getName());
int x = is.read();
while (x >= 0) {
fos.write((byte) x);
x = is.read();
//System.out.println("reading");
}
}
}
그러나 myemailpass 또는 mymobilepass의 값으로 매번 null이 발생합니다. 이유는 무엇입니까? if 문은 실행되지 않습니다. 도와주세요
문제는 fieldvalue
루프를 설정하지 않았다는 것입니다 .
DiskFileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
List<FileItem> files = new ServletFileUpload(factory).parseRequest(request);
for (FileItem item : files) {
if (item.isFormField()) {
String fieldname = item.getFieldName();
String fieldvalue = item.getString();
if (fieldname.compareTo("Mcheckbox") == 0) {
System.out.println("checkbox value is " + fieldvalue);
mymobilepass = fieldvalue;
} else if (fieldname.compareTo("Echeckbox") == 0) {
System.out.println("checkbox value is " + fieldvalue);
myemailpass = fieldvalue;
}
} else {
InputStream is = item.getInputStream();
FileOutputStream fos = new FileOutputStream(path + "\\" + fi.getName());
int x = is.read();
while (x >= 0) {
fos.write((byte) x);
x = is.read();
//System.out.println("reading");
}
}
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다