1.js
$(function() { $('#btnScan').click(function() { document.getElementById('scaner1').scan(); }), $('#btnUpload1').click(function() { ajax_post_1(); }), $('#btnUpload2').click(function() { ajax_post_2(); }) }); function getServerUrl(){ if ($('#asp').attr("checked")==true) { return "./ajax.asp"; }else if ($('#jsp').attr("checked")==true) { return "http://localhost:8080/pages/ajax.jsp"; }else if ($('#php').attr("checked")==true) { return "./ajax.php"; }else if ($('#aspnet').attr("checked")==true) { return "./ajax.aspx"; } else{ alert('请选择服务器端技术类型!'); return null; } } function ajax_post_1() { var base64_data = document.getElementById('scaner1').jpegBase64Data; // alert("data length:"+base64_data.length); // var s=getServerUrl(); // alert(s); $.ajax({ url : getServerUrl(), type : 'POST', dataType : 'jason', data : { picData : "'" + base64_data + "'", picExt:".jpg" }, timeout : 1000, success : callbackfun1 }); } function ajax_post_2() { var base64_data = document.getElementById('scaner1').allImageAsPDFData; // alert("data length:"+base64_data.length); // var s=getServerUrl(); // alert(s); $.ajax({ url : getServerUrl(), type : 'POST', dataType : 'jason', data : { picData : "'" + base64_data + "'", picExt:".pdf" }, timeout : 1000, success : callbackfun1 }); } function callbackfun1(data) { var obj = eval('(' + data + ')'); if ('ok' == obj.savestatus) { alert('success!'); } }
2.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>ScanOnWeb控件JQuery技术示例页面</title> <script language="javascript" type="text/javascript" src="../js/jquery-1.4.2.min.js" ></script> <script language="javascript" type="text/javascript" src="./ajax.js" ></script> </head> <body> <form action=""> <p>请选择服务器端技术: <label> <input type="radio" name="radio" id="jsp" value="jsp" /> jsp</label> <label> <input type="radio" name="radio" id="aspnet" value="asp.net" /> asp.net</label> </p> <p> <input type="button" value="扫描" id="btnScan"/> <input type="button" value="上传单页结果" id="btnUpload1"/> <input type="button" value="上传全部结果" id="btnUpload2"/> </p> <object classid="clsid:15D142CD-E529-4B01-9D62-22C9A6C00E9B" id="scaner1" width="100%" height="600" codebase="../cabs/ScanOnWeb.cab#version=1,0,0,10"> <param name="Visible" value="0"> <param name="AutoScroll" value="0"> <param name="AutoSize" value="0"> <param name="AxBorderStyle" value="1"> <param name="Caption" value="scaner"> <param name="Color" value="4278190095"> <param name="Font" value="宋体"> <param name="KeyPreview" value="0"> <param name="PixelsPerInch" value="96"> <param name="PrintScale" value="1"> <param name="Scaled" value="-1"> <param name="DropTarget" value="0"> <param name="HelpFile" value> <param name="PopupMode" value="0"> <param name="ScreenSnap" value="0"> <param name="SnapBuffer" value="10"> <param name="DockSite" value="0"> <param name="DoubleBuffered" value="0"> <param name="ParentDoubleBuffered" value="0"> <param name="UseDockManager" value="0"> <param name="Enabled" value="-1"> <param name="AlignWithMargins" value="0"> <param name="ParentCustomHint" value="-1"> </object> </form> </body> </html>
3.jsp代码
<%@ page contentType="text/html; charset=utf-8" language="java" import="java.sql.*,java.io.*" errorPage="" %><% //注意一行html内容也不要出现,防止被编译为serlvet以后有写html到客户端的行为 String savePath=config.getServletContext().getRealPath("/")+"//"; File tmp_path=new File(savePath); tmp_path.mkdirs(); System.out.println("照片数据保存路径:"+savePath); String pic_base_64_data=request.getParameter("picData"); //System.out.println("图片数据:"+pic_base_64_data); //如果下面的代码输出true则说明需要调整服务器软件工作参数,解决接受post数据的大小限制问题,例如 //tomcat的话需要在server.xml中配置maxPostSize="0"来解除上传数据的大小限制 <Connector port="8080" protocol="HTTP/1.1" // connectionTimeout="20000" // redirectPort="8443" maxPostSize="0"/> // System.out.println(null==pic_base_64_data); System.out.println("base64 string length:"+pic_base_64_data.length()); String fileFormat=request.getParameter("picExt"); sun.misc.BASE64Decoder decode=new sun.misc.BASE64Decoder(); byte[] datas=decode.decodeBuffer(pic_base_64_data.substring(1, pic_base_64_data.length()-2)); String filename=String.valueOf(System.currentTimeMillis())+fileFormat; File file=new File(savePath+filename); OutputStream fos=new FileOutputStream(file); System.out.println("图片文件名称:"+filename); fos.write(datas); fos.close(); response.setContentType("application/x-json"); response.setCharacterEncoding("utf-8"); out.print("{'savestatus':'ok'}"); out.flush(); out.close(); %>
相关推荐
jQuery的出现极大地降低了JavaScript编程的复杂性,使得开发者能够更快速地编写出跨浏览器的代码。 本书首先介绍了jQuery的基本用法,包括如何引入jQuery库,以及如何使用$函数选择元素。接着,深入讲解了jQuery中...
9. **源代码分析**:书中附带的源代码提供了丰富的示例,读者可以下载并进行实践,加深对jQuery的理解。 10. **最新版本特性**:由于是第二版,书中会涉及jQuery的最新版本,讲解新功能和改进,确保读者掌握最新的...
而"锋利的jQuery+源代码.rar"可能包含书中示例代码,这对于理解书中实例并进行实践至关重要。 学习jQuery,不仅能够提高开发效率,还能让你编写出更加流畅、用户体验更好的网页应用。无论是初学者还是有一定经验的...
标题“JQuery扫描图书”和描述中提到的“锋利的JQUERY”指的是《锋利的jQuery》这本书,这本书深入浅出地讲解了jQuery的使用和应用,包括其基本概念、核心API以及实际开发中的实践技巧。 **jQuery的核心概念** 1. ...
示例代码中使用了jQuery选择器“$(":input").not(":radio,select,:reset")”,这个选择器选中了页面上所有input元素,但排除了类型为radio、select或reset的元素。接下来,通过for循环遍历这些元素,并检查它们是否...
在选择器部分,书中详细讲解了如何使用CSS选择器来选取页面中的元素,以及jQuery特有的链式调用和组合选择器,使得代码更加简洁。DOM操作部分涵盖元素的增删改查,如`.append()`、`.remove()`、`.html()`等方法,使...
根据提供的文件信息,“锋利的jQuery 第2版扫描版”这一标题及描述表明这是一本关于jQuery技术的书籍。jQuery是一种流行的JavaScript库,用于简化HTML文档遍历、事件处理、动画以及Ajax交互等操作。接下来将基于这个...
整本书实例丰富,每个知识点都有相应的示例代码,这些代码是作者精心挑选的,它们不仅包括了简单的使用方式,还涵盖了各种复杂的应用场景,方便读者在实际开发中直接应用。 通过这些实例,读者可以学会如何使用...
以下是如何使用jQuery选择器和`.qrcode()`方法生成二维码的基本示例: ```javascript $(document).ready(function() { $('#qrcode').qrcode({ width: 128, // 设置二维码的宽度 height: 128, // 设置二维码的...
首先,`jquery.min.js`是jQuery的核心库,它包含了大量的函数和方法,使得JavaScript编程更加简洁和高效。在生成二维码的场景中,我们需要引入这个库来利用jQuery的功能。 `jquery.qrcode.min.js`则是`jquery....
读者可以通过跟随书中的步骤,亲手实践每一个示例,加深对jQuery、JavaScript和CSS的理解。同时,书中可能还包含了一些解决常见问题和优化技巧的建议,这对于提升开发效率和创建高质量的Web应用至关重要。 总的来说...
jQuery是一种快速、小巧的JavaScript库,它通过封装DOM操作、事件处理、动画和Ajax交互等,简化了网页中的脚本编程。多行文字图片滚动效果指的是在网页上能够看到文字或图片从右向左或从下向上等连续滚动的效果,常...
《锋利的jQuery》是一本深受开发者欢迎的jQuery教程书籍,旨在帮助读者深入理解和熟练运用...结合高清扫描的PDF版和源码,你可以随时随地学习,理论与实践相结合,快速提升jQuery技能,为你的Web开发之路增添利器。
在压缩包文件"qqrcode"中,可能包含了这个过程所需的所有资源,如HTML文件、jQuery库、qrcode插件以及示例代码。解压并研究这些文件,可以帮助你更好地理解和实现Qt中的jQuery二维码生成功能。记得根据你的实际需求...
6. 代码的下载和示例:文档提到可以从文章中下载完整的示例代码,这表明了作者希望通过共享代码来促进社区的技术交流和积累。 需要注意的是,文档内容通过OCR扫描可能有错误或者不准确的地方,需要在实际应用时对...
通过解压《锋利的jQuery》实例源码.rar,你可以找到对应的代码示例,逐行分析并动手实践,这对于巩固理论知识和提升编程技能大有裨益。 总之,《锋利的jQuery》结合高清扫描版的书籍和源码,为学习者提供了一个全面...
【ASP.NET编程知识】本文将探讨如何利用SignalR实现消息推送以及二维码扫描登录的实现代码。SignalR是一个针对ASP.NET开发者设计的库,它简化了将实时Web功能整合到应用程序的过程,使得服务器能够即时地向连接的...
《锋利的jQuery》这本书是深入理解jQuery框架的宝贵资源,尤其对于前端开发者而言,它不仅提供了详尽的代码示例,还深入讲解了jQuery的工作原理及其在网页开发中的应用技巧。从标题“锋利的jQuery”可以看出,本书...
而各章节代码内容则可能包含配套的示例代码,读者可以直接下载并运行这些代码,以加深对书中概念的理解和实践。 标签“PDF文档”提示我们这本书是以PDF形式提供的,这是一种通用的电子文档格式,支持文字、图片、...
在上述代码示例中,通过CSS设置了不同状态下的样式,并利用jQuery实现了在文档加载完成后初始化TAB选项卡的功能。 ### 4. 插件的具体实现 插件的具体实现通过HTML结构定义了TAB标签和内容区域。例如,在HTML代码中...