上传图片


1.入口
function loadPicture(field)
{
 var picPath = document.userForm("user.picPath");
    var photoPath = document.userForm("user.photoPath");
 var URL = "hr/employee/baseInfo/pictureInFrame.jsp?field="+field;
 loc_x=150; // document.body.scrollLeft+event.clientX-event.offsetX;
  loc_y=150; // document.body.scrollTop+event.clientY-event.offsetY;
  var fileName = window.showModalDialog(URL,self,"edge:raised;scroll:1;status:0;help:0;resizable:1;dialogWidth:520px;dialogHeight:150px;dialogTop:"+loc_y+"px;dialogLeft:"+loc_x+"px");
   if(fileName == undefined){
    return;
   }
  if(fileName != ""){
    if(field == "PICTURE"){
     picPath.value = fileName; 
     document.all.img1.src = "ShowUploadFileServlet?path=" + fileName;
    var o = document.getElementById("img1");
    o.style.display = "block";
    }
    if(field == "IDPHOTO"){
    photoPath.value = fileName; 
    document.all.img2.src = "ShowUploadFileServlet?path=" + fileName;  
    var o = document.getElementById("img2");
    o.style.display = "block";
   }
   }
  }
2.弹出页面
----------------------------------------------------------
<%@ page contentType="text/html; charset=GBK"%>
<html>
<head>
<title>上载图片</title>
<frameset rows="*" frameborder="no" border="0" framespacing="0">
 <frame src="pictureIn.jsp?field=<%=request.getParameter("field")%>"
  name="purview_TopFrame" frameborder="0" scrolling="NO" noresize>
</frameset>
<noframes>
<body>
</body>
</noframes>
</html>
-------------------------------------------------------
<%@ page contentType="text/html; charset=GBK"%>
<link href="/hrWeb/hr/css/style.css" rel="stylesheet" type="text/css">
<script type="" language="javascript" src="/hrWeb/hr/js/Shadow.js"></script>
<script type="" language="javascript" src="/hrWeb/hr/js/ShowButton.js"></script>
<script type="text/javascript">
function clk_upload()
{
form1.action="uploadPic.jsp?field=<%=request.getParameter("field")%>";
form1.submit();
}
function clk_cancel()
{
window.close();
}
</script>
<body>
<div align="center">
<form name="form1" method="POST" action="" ENCTYPE="multipart/form-data">
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="ReportTable">
 <tr class="TableContent">
  <td>&nbsp;</td>
  <td>&nbsp;</td>
 </tr>
 <tr class="TableContent" align="center">
  <td align="right">请选择文件:</td>
  <td align="left"><input type="file" name="uploadExcel" value=""
   size="30" title="图片文件" class="Button1_mouseover" /> <script
   type="text/javascript">showUploadBtn();showCancelBtn()</script></td>
 </tr>
 <tr class="TableContent">
  <td>&nbsp;</td>
  <td>&nbsp;</td>
 </tr>
 <tr class="TableContent">
  <td colspan="2">&nbsp;&nbsp;<b>注意:上载文件是图片格式(jpg、jpeg、gif、png格式)</b></td>
 </tr>
 
 </tr>
</table>
</form>
</div>
</body>


3.后台操作

<%@page contentType="text/html;charset=GBK"%>
<%@page import="cn.com.hkgt.util.*" %>
<%@page import="org.w3c.util.UUID"%>
<%@page import="cn.com.hkgt.util.PictureUtil"%>
<%@page import="java.io.File"%>
<%@page import="java.io.FileOutputStream;"%>
<jsp:useBean id="mySmartUpload" scope="page" class="com.jspsmart.upload.SmartUpload" />
<body>
<form name="form1" method="POST" action="">
<%
 String field = request.getParameter("field");
 try {
  // Initialization
  mySmartUpload.initialize(pageContext);
  mySmartUpload.setAllowedFilesList("jpg,JPG,jpeg,JPEG,gif,GIF,png,PNG");
  // Upload
  mySmartUpload.upload();
  // Select each file
  // Retreive the current file
  com.jspsmart.upload.File myFile = mySmartUpload.getFiles().getFile(0);
  //System.out.println("fileName : " + myFile.getFileName());
  byte[] tempBytes = new byte[4];
  tempBytes[0] = myFile.getBinaryData(0);
  tempBytes[1] = myFile.getBinaryData(1);
  tempBytes[2] = myFile.getBinaryData(2);
  tempBytes[3] = myFile.getBinaryData(3);
  //System.out.println(tempBytes[0]);
  //System.out.println(tempBytes[1]);
  //System.out.println(tempBytes[2]);
  
  // Save it only if this file exists
  
  //String savePath = myFile.getFilePathName();
  //String originalPicPath = myFile.getFilePathName().trim();
  //byte[] bytes = PictureUtil.getBytes(originalPicPath);
  if(!PictureUtil.isGIF(tempBytes) && !PictureUtil.isJPG(tempBytes) && !PictureUtil.isPNG(tempBytes))
   throw new Exception();
   
  int size = myFile.getSize();
  if (size == 0) {
   out.print("<script language=\"javascript\">\r\n");
   out.print("alert('上载失败,没有选择文件。');");
   out.print("\r\n");
   out.print("location='pictureIn.jsp?field=" + field + "';");
   out.print("</script>");
  } else if (field.equals("PICTURE") && size > 204800) {
   out.print("<script language=\"javascript\">\r\n");
   out.print("alert('上载失败,照片不能大于200KB。');");
   out.print("\r\n");
   out.print("location='pictureIn.jsp?field=" + field + "';");
   out.print("</script>");
  } else if (field.equals("IDPHOTO") && size > 512000) {
   out.print("<script language=\"javascript\">\r\n");
   out.print("alert('上载失败,身份证扫描件不能大于500KB。');");
   out.print("\r\n");
   out.print("location='pictureIn.jsp?field=" + field + "';");
   out.print("</script>");
  } else {
   //路径
   String uuid = new UUID().toString();
   String startPath = HrPropertyUtil.getFileUploadPath();
   String fileName = startPath + "/" + uuid + "." + myFile.getFileExt();
   
   //2008-10-28 changed by changwei
   //out.println("<script>alert(fileName = '" + fileName + "')</script>");
   myFile.saveAs(fileName, mySmartUpload.SAVE_PHYSICAL);
   
   String converUUID = new UUID().toString();
   String converFileName = startPath + "/" + converUUID + ".jpg";
   PictureUtil.toJPG(fileName,converFileName,100);
   
   java.io.File file = new java.io.File(converFileName);
   //System.out.println("file.length() = " + converFileName.length());
   
   String absolutePath = file.getAbsolutePath();
   absolutePath = absolutePath.replace('\\', '/');

   out.print("<script language=\"javascript\">\r\n");
   out.print("window.returnValue='" + absolutePath + "';");
   out.print("alert('上载成功。');");
   out.print("\r\n");
   out.print("window.close();");
   out.print("</script>");
  
  }
 } catch (Exception e) {
  //e.printStackTrace();
  out.print("<script language=\"javascript\">\r\n");
  out.print("alert('上载失败,请检查文件格式是否正确。');");
  out.print("\r\n");
  out.print("location='pictureIn.jsp?field=" + field + "';");
  out.print("</script>");
 }
%>
</form>
</body>

---------------设置图片品质------------------------------------------------------
public static void toJPG(String source, String dest, int quality) throws JimiException {

  if (dest == null || dest.trim().equals(""))

   dest = source;

  if (!dest.toLowerCase().trim().endsWith("jpg")) {

   dest += ".jpg";

   System.out.println("Overriding to JPG, output file: " + dest);

  }

  if (quality < 0 || quality > 100 || (quality + "") == null

  || (quality + "").equals("")) {

   System.out.println("quality must between ’0’ and ’100’");

   System.out.println("set to DEFAULT value:’75’");

   quality = 100;

  }

  try {

   JPGOptions options = new JPGOptions();

   options.setQuality(quality);

   ImageProducer image = Jimi.getImageProducer(source);

   JimiWriter writer = Jimi.createJimiWriter(dest);

   writer.setSource(image);

   // 加入属性设置,非必要

   // /*

   writer.setOptions(options);

   // */
   writer.putImage(dest);
   
   OutputStream os = new ByteArrayOutputStream();
   
   writer.putImage(os);

  } catch (JimiException je) {

   throw je;

  }

 }
 

你可能感兴趣的:(JavaScript,html,jsp,css,OS)