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> </td>
<td> </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> </td>
<td> </td>
</tr>
<tr class="TableContent">
<td colspan="2"> <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;
}
}