`

上传图片

    博客分类:
  • java
阅读更多


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;

  }

 }
 

分享到:
评论

相关推荐

    wangEditor上传图片 demo

    【wangEditor上传图片 demo】是一个基于wangEditor富文本编辑器的图片上传功能示例,它展示了如何在前端使用wangEditor并结合后端Java代码实现图片的上传与展示。这个demo适用于那些想要在Web应用中集成图片上传功能...

    Android 仿微信选择图片,上传图片

    本示例项目"Android 仿微信选择图片,上传图片"旨在帮助开发者实现类似的功能,让用户可以从手机相册中选取图片,并能上传到服务器。下面我们将详细探讨这一过程中的关键知识点。 1. **权限申请**: 在Android 6.0...

    jquery批量上传图片插件

    "jQuery批量上传图片插件"是基于jQuery实现的一种功能,旨在为网页应用提供便捷的图片批量上传功能。这个插件通常利用Ajax技术实现异步上传,即在不刷新页面的情况下,用户可以选择多张图片并将其上传到服务器,大大...

    asp.net上传图片带进度条

    通过以上步骤,我们可以创建一个ASP.NET应用,它允许用户上传图片,并在上传过程中显示进度条。这个功能不仅可以提升用户体验,还能帮助监控上传状态,提高应用的可靠性。在实际开发中,可以根据项目需求进行相应的...

    C# winform上传照片到服务器

    在C# WinForm应用开发中,上传照片到服务器是一个常见的需求,这涉及到客户端与服务器之间的文件传输技术。本文将深入探讨如何实现这个功能,以及如何根据要求修改照片的名字。 首先,我们需要了解C#中的文件操作...

    绝对好用的上传文件上传图片vb.net示例

    这个"绝对好用的上传文件上传图片vb.net示例"提供了一个基础的实现,它不仅可以处理图片上传,通过调整还能扩展到其他文件类型的上传。下面将详细讲解其中涉及的关键知识点。 1. 文件上传控件:在ASP.NET中,`...

    超级源码vb.net 上传图片文件

    根据提供的标题、描述以及部分代码内容,我们可以总结出以下关于“使用VB.NET上传图片文件”的相关知识点: ### VB.NET上传图片文件概述 在VB.NET中实现文件上传功能时,主要涉及的是通过Web表单(ASP.NET)来处理...

    Python实现QQ相册自动上传照片源码

    这个"Python实现QQ相册自动上传照片源码"就是一个很好的例子,它利用编程技术实现了无人值守的照片上传功能,对于个人或企业来说,这可以极大地节省时间和精力。 首先,我们要了解这个项目的核心——Python编程语言...

    图片上传系统 上传图片至数据库上传图片至数据库上传图片至数据库

    - 权限控制:确保只有授权用户能访问和上传图片,例如使用JWT令牌进行身份验证。 - 文件权限:设置正确的文件系统权限,防止非法访问。 - CDN加速:使用内容分发网络(CDN)可以提高图片加载速度,同时分散服务器...

    仿qq相册批量上传照片功能

    在IT行业中,批量上传图片是一项常见的需求,尤其是在社交媒体、个人相册、云存储服务等应用场景中。QQ相册作为一款广泛使用的社交应用,其照片上传功能具有用户友好的特点,支持用户快速方便地分享自己的照片。这个...

    ueditor上传图片配置

    【标题】"ueditor上传图片配置"涉及到的是在SpringBoot框架下集成并配置ueditor,以便实现用户在编辑器中上传图片的功能。ueditor是一款流行的富文本编辑器,它提供了丰富的在线编辑功能,包括文字编辑、图片上传、...

    C#winform上传图片

    本教程将详细讲解两种实现C# WinForm上传图片的方法,并提供源代码供参考和修改,以适应不同类型的文件上传需求。 方法一:使用OpenFileDialog控件 OpenFileDialog是.NET Framework提供的一个内置控件,它允许用户...

    仿微信上传照片的demo

    2. **图片裁剪**:为了保持上传图片的质量和一致性,通常会提供图片裁剪功能。Android SDK提供了`Crop Intent`,也可以使用第三方库如`UCrop`进行更高级的裁剪操作。 3. **图片压缩**:为减少网络传输时间和节省...

    上传图片不乱码demo

    在这个"上传图片不乱码demo"中,开发者已经解决了图片上传过程中的乱码问题,提供了简单易用的实现方式。下面我们将详细探讨相关的技术点。 1. **文件上传原理**:文件上传是通过HTTP协议的POST请求来完成的。在...

    ajax上传图片,PHP上传图片,PHP上传图片跨域,跨域上传图片,上传图片缩览图

    首先,让我们从AJAX上传图片开始。AJAX(Asynchronous JavaScript and XML)是一种在不刷新整个页面的情况下与服务器交换数据并更新部分网页的技术。在图片上传场景中,AJAX可以提供无刷新的用户体验,使得用户在上...

    TinyMCE自定义上传图片

    在描述中提到的"自定义上传图片插件",可能是对TinyMCE原有图片上传功能的增强或替换。这个插件可能包含了以下关键部分: 1. **上传接口**:自定义插件需要实现一个图片上传接口,通常是通过发送HTTP请求到服务器端...

    上传图片 图片上传

    标题“上传图片 图片上传”直指这个核心操作,而描述中的“上传图片同时支持post参数,也支持上传其他类型文件【需修改对应参数】”揭示了实现这一功能时的一些关键技术和注意事项。 首先,我们来探讨图片上传的...

    网页上传照片demo

    这个"网页上传照片demo"应该是一个示例项目,旨在展示如何在网站上实现用户上传图片的功能。以下是对这个主题的详细解释: 1. **HTML表单**:上传照片的基础是HTML的`&lt;form&gt;`元素,特别是`&lt;input type="file"&gt;`标签...

    上传图片例子 H5

    在H5技术中,上传图片是一项常见的功能,广泛应用于网页、移动端应用以及各种在线服务中。这个"上传图片例子 H5"很可能是提供了一个演示如何在HTML5环境下实现图片上传的示例代码或教程。H5是HTML5的简称,是超文本...

    一个不错的上传图片可以显示上传路径并且修改图片名称

    首先,我们需要理解标题和描述中提到的关键点:上传图片、显示上传路径以及修改图片名称。这些功能通常涉及到前端界面设计、后端服务器处理以及数据库存储。 1. **前端界面**: - 用户交互:在前端,我们需要提供...

Global site tag (gtag.js) - Google Analytics