首页 文章 精选 留言 我的

精选列表

搜索[PDF查看],共10000篇文章
优秀的个人博客,低调大师

将excel文件内容存储到数据库,并可以实时在前端查看(不必生成文件)

版权声明:本文为博主原创文章,未经博主允许不得转载 本文主要讲前端内容,后端涉及较少,可以认为是使用Java。 首先是excel文件上传,这个较为简单,可以html5的数据接口FormData()进行操作。具体代码如下: <!DOCTYPE html> <html> <head> </head> <body> <input type="file" id="_file" value=""/><p for="file">或点此选择文件</p> <button id = "file_button" >按钮</button> </body> </html> 然后是对应的javascript $("#button").click(function(){ var files = $('#_file').prop('files'); var data = new FormData(); data.append("upload",files[0]); //因为是只选择一个文件,故而只取file[0] $.ajax({ url: yourPath, type: 'POST', data: data, cache: false, dataType:'text', processData: false, contentType: false, success: function(result) { // Do something with the result alert("成功"); }, error : function(result){ alert("失败"+result.toString()); } }); }); 后端接收到文件之后,将其存储成二进制数组,在数据库中,比如postgresql,使用blob数据类型,然后在java中使用byte数组映射就可以了。 那么怎么从后端存储的文件内容直接在页面上excel呢?这里需要用到sheetJs,官网:http://sheetjs.com/,可以直接取其demo来用, demo下载地址放在github上了:https://github.com/SheetJS/SheetJS.github.io。 在这里是直接使用它的一些代码,主要说说思路。 下载后解压是SheetJS.github.io-master文件夹,在而显示生成excel的Js代码主要在SheetJS.github.io-master\assets\js\dropsheet.js中。其中发下其最后是通过调用该文件中以下代码 function handleDrop(e) { e.stopPropagation(); e.preventDefault(); if(pending) return opts.errors.pending(); var files = e.dataTransfer.files; var i,f; for (i = 0, f = files[i]; i != files.length; ++i) { var reader = new FileReader(); var name = f.name; reader.onload = function(e) { var data = e.target.result; var wb, arr; var readtype = {type: rABS ? 'binary' : 'base64' }; if(!rABS) { arr = fixdata(data); data = btoa(arr); } function doit() { try { if(useworker) { sheetjsw(data, process_wb, readtype); return; } wb = XLSX.read(data, readtype); process_wb(wb); } catch(e) { console.log(e); opts.errors.failed(e); } } if(e.target.result.length > 1e6) opts.errors.large(e.target.result.length, function(e) { if(e) doit(); }); else { doit(); } }; if(rABS) reader.readAsBinaryString(f); else reader.readAsArrayBuffer(f); } } 说明:SheetJs这个demo中,解析excel使用的是js-xlsx这个库,这个库对excel的操作很多,解析只是一个方面,具体可以上github上看。而根据解析在html上绘制excel表格的是canvas-datagrid.js这个表格控件。 可以看到它是通过FileReader的readAsBinaryString方法读取每个选中的文件,根据文件内容在html中绘制出excel表格,那么我们只要在这里自己从后端接收那个二进制数据,生成一个File对象,再跑同样这段代码就OK。 这个过程中碰到两个问题: 一个就是后端的byte数组传递到前端很不方便,而且我在用ajax传递的时候,二进制数组参数会变成string型。 另一个就是javascript中无法直接新建一个File对象。。 首先第一个问题,二进制数组不能传递,那么就只能传递字符串了,但是不能直接转字符串,那么有什么办法呢?再上面的代码看到,里面有一句 var readtype = {type: rABS ? 'binary' : 'base64' }; 说明这个操作可以操作base64编码的字符串,那就是转成base64,这个需要引入apache的一个包,包名为commons-codec,再Maven中引用如下, <!-- https://mvnrepository.com/artifact/commons-codec/commons-codec --> <dependency> <groupId>commons-codec</groupId> <artifactId>commons-codec</artifactId> <version>1.10</version> </dependency> 再调用其一个方法, Base64.encodeBase64String(byteArray); //将byteArray转为base64字符串 这样就可以传输到前端了。 再说第二个问题,通过百度发现,javascript有一种数据类型Blob,而File正是基于这种Blob的。 一个Blob对象就是一个包含有只读原始数据的类文件对象 但是Blob是可以初始化来生成的, var blob = new Blob([base64Data], { type: "mime" }) 然后就可以通过FileReader读取了,再接下来只需要按照demo的代码调用就可以了。。。 reader.readAsBinaryString(blob); ...

优秀的个人博客,低调大师

在自己的电脑中查看网站显示正常,但是上传后,图片或链接就不能用了?

这一般是由于目录名或文件名不准确,注意UNIX操作系统的空间是分大小写的,建议统一用英文小写。windows操作系统的空间一般不区分大小写。另外,请不要使用中文目录名或文件名。 注意,请先到阿里云官网 领取幸运券,除了价格上有很多优惠外,还可以参与抽奖。详见:https://promotion.aliyun.com/ntms/act/ambassador/sharetouser.html?userCode=2a7uv47d&utm_source=2a7uv47d

优秀的个人博客,低调大师

如果遇到Hadoop集群正常,MapReduce作业运行出现错误,如何来查看作业运行日志(图文详解)

这个时候我们可以进入logs下的userlogs 备注:userlogs目录下有很多个以往运行的作业,我选择最新的最大编号的作业,就是我们当前运行作业的日志。然后找到stderr stdout syslog文件,stderr为作业错误日志,stdout作业输出日志,syslog为系统日志 本文转自大数据躺过的坑博客园博客,原文链接:http://www.cnblogs.com/zlslch/p/7643664.html,如需转载请自行联系原作者

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册