
<%
 
    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("/pos/img/"+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); }
    %>

<%@ taglib uri="http://cav.co.il/taglibs/mumps" prefix="m" %>
<m:session namespace="USER">
<%@ include file="w1jbarg.jsp" %>
 <m:exec expr='D ^%W1ARG' />
<script>
 <m:exec expr='D PARSE^%W1JS' />
</script>

<SCRIPT language="javascript">
  history.back(1)
  var a=0
  var fl="<%=lastFileName%>"
  if (fl.indexOf(".jpg")<0 && fl.indexOf(".jpeg")<0 && fl.indexOf(".gif")<0 && fl.indexOf(".bmp")<0 && fl.indexOf(".png")<0 )
    { alert("Type of picture "+fl+" is wrong !") }
  else
    {
     var prm=fl+";<m:out expr='%ARG("CD")' />;<m:out expr='%ARG("MSD")' />;<m:out expr='$G(%ARG("PRE"))' />"
     //alert("w3upload:prm="+prm)
     a=<m:serverExec expr='D ^W3UPLPIC(PRM) W $R(1000)' varName='PRM' varValue='prm' />
     //alert("a="+a)
     var ok=<%=ok%>
     //if (ok) { alert('Uploaded '+fl); }
     if (!ok) { alert('Error ! <%=err%>'); }
     <m:exec expr='S ^[$$^W3MAIN]TMPIMG(JB,%ARG("CD"))=1' />
     
   }
   var to=Parse(parent.window.location,"&CDKV",1,1)+"&CDKV="+parent.hd.GetCDKV()+"&RND="+a
   //alert("to="+to)
   parent.window.location.replace(to)
 
</SCRIPT>
</m:session>






