반응형
This is the form html
Here is upload.jsp
<form name="uploadForm" action="upload.jsp" enctype="multipart/form-data" method="post"> <input type="file" name="file"/> <input TYPE=Button name='Upload' Value='Upload' onClick="uploadForm.Upload.value='Uploading...';document.uploadForm.action='upload.jsp';document.uploadForm.submit()"> </form>
Here is upload.jsp
<% response.setContentType("text/html"); response.setHeader("Cache-control","no-cache"); String err = ""; String lastFileName = ""; String contentType = request.getContentType(); String boundary = ""; final int BOUNDARY_WORD_SIZE = "boundary=".length(); if(contentType == null || !contentType.startsWith("multipart/form-data")) { err = "Ilegal ENCTYPE : must be multipart/form-data\n"; err += "ENCTYPE set = " + contentType; }else{ boundary = contentType.substring(contentType.indexOf("boundary=") + BOUNDARY_WORD_SIZE); boundary = "--" + boundary; try { javax.servlet.ServletInputStream sis = request.getInputStream(); byte[] b = new byte[1024]; int x=0; int state=0; String name=null,fileName=null,contentType2=null; java.io.FileOutputStream buffer = null; while((x=sis.readLine(b,0,1024))>-1) { String s = new String(b,0,x); if(s.startsWith(boundary)) { state = 0; //out.println("name="+name+"<br>"); //out.println(fileName+"<br>"); name = null; contentType2 = null; fileName = null; }else if(s.startsWith("Content-Disposition") && state==0) { state = 1; if(s.indexOf("filename=") == -1) name = s.substring(s.indexOf("name=") + "name=".length(),s.length()-2); else { name = s.substring(s.indexOf("name=") + "name=".length(),s.lastIndexOf(";")); fileName = s.substring(s.indexOf("filename=") + "filename=".length(),s.length()-2); if(fileName.equals("\"\"")) { fileName = null; }else { String userAgent = request.getHeader("User-Agent"); String userSeparator="/"; // default if (userAgent.indexOf("Windows")!=-1) userSeparator="\\"; if (userAgent.indexOf("Linux")!=-1) userSeparator="/"; fileName = fileName.substring(fileName.lastIndexOf(userSeparator)+1,fileName.length()-1); if(fileName.startsWith( "\"")) fileName = fileName.substring( 1); } } name = name.substring(1,name.length()-1); if (name.equals("file")) { if (buffer!=null) buffer.close(); lastFileName = fileName; buffer = new java.io.FileOutputStream("/Program Files/Apache Group/Tomcat 4.1/webapps/jspcart/images/"+fileName); } }else if(s.startsWith("Content-Type") && state==1) { state = 2; contentType2 = s.substring(s.indexOf(":")+2,s.length()-2); }else if(s.equals("\r\n") && state != 3) { state = 3; }else { if (name.equals("file")) buffer.write(b,0,x); } } sis.close(); buffer.close(); }catch(java.io.IOException e) { err = e.toString(); } } boolean ok = err.equals(""); if(!ok) { out.println(err); }else{ %> <SCRIPT language="javascript"> history.back(1) alert('Uploaded <%=lastFileName%>'); window.location.reload(false) </SCRIPT> <% } out.println("done"); %>
반응형
'웹프로그램' 카테고리의 다른 글
자바스크립트 함수 체크 (0) | 2009.02.09 |
---|---|
[자바스크립트] 한글 처리 (0) | 2009.02.07 |
[PHP] 한글삭제 정규식 (0) | 2009.02.07 |
PHP strip_tags() 문자열에 html 태그나 php문구 모두 제거 (0) | 2009.01.30 |
PHP Header 다운로드 에서 파일이름이 한글로 된경우 바로 열기 다운로드 안되는경우 (0) | 2009.01.05 |
프록시 proxy 접속자 실제 아이피 ip 확인 가능 (0) | 2008.11.19 |
ASP 제목이나 글자 길이가 지정한 길이보다 초과하면 잘라 내고 ... 붙이기 (0) | 2008.11.19 |
자바스크립트 <a href 클릭시 팝업 띄우기 및 클릭한 URL 값 받아오기 (0) | 2008.11.07 |