jsp实现文件上传以及类似百度文库在线阅读
- 格式:docx
- 大小:125.36 KB
- 文档页数:7
用JSP实现拖拽上传文件和文件夹JSP(JavaServer Pages)是一种动态网页技术,允许将Java代码嵌入到HTML页面中。
拖拽上传文件和文件夹是一种常见的网页交互功能,可以使用JSP来实现。
在实现拖拽上传文件和文件夹功能之前,首先需要了解一下拖拽上传的基本原理。
在HTML中,可以通过Drag and Drop API来获取拖拽的文件和文件夹。
然后,可以使用JavaScript将拖拽的文件和文件夹发送到服务器端,服务器端可以使用JSP来处理这些文件和文件夹。
以下是一个基本的实现拖拽上传文件的JSP页面的示例:```htmlpageEncoding="UTF-8"%><!DOCTYPE html><html><head><meta charset="UTF-8"><title>拖拽上传文件</title><script>function handleDrop(event)event.preventDefault(; // 禁止浏览器打开文件var files = event.dataTransfer.files;//遍历上传的文件for (var i = 0; i < files.length; i++)var file = files[i];// 创建FormData对象,用于发送文件到服务器var formData = new FormData(;formData.append("file", file);// 创建一个XMLHttpRequest对象,发送文件到服务器var xhr = new XMLHttpRequest(;xhr.open("POST", "upload.jsp", true);xhr.onreadystatechange = functioif (xhr.readyState == 4 && xhr.status == 200)//上传成功console.log(xhr.responseText);}};xhr.send(formData);}}</script></head><body ondragover="event.preventDefault(;"ondrop="handleDrop(event);"><h1>拖拽上传文件</h1><p>将文件拖拽到此处上传</p></body></html>```当文件被拖拽到页面的时候,`handleDrop(`函数会被调用。
实现类似百度文库在线观看功能目录实现原理过程 (2)资料和工具准备 (2)项目目录及源码 (2)程序运行需要openoffice服务支持 (9)实现原理过程网上大致看了下实现的方式,大体上有四种转换的方式:1.Txt/Word/Excel/PPT=>PDF(OpenOffice+JodConverter)=>SWF(pdf2swf)=>FlexPaper浏览2.Txt/Word/Excel/PPT=>PDF(MSOffice+JACOB)=>SWF(pdf2swf)=>FlexPaper浏览3.Txt/Word/Excel/PPT=>SWF (FlashPaper)=> FlexPaper浏览4.Txt/Word/Excel/PPT=>SWF(print2flash)=> FlexPaper浏览由于FlashPaper为收费资源,现在先按照第一种方式简单实现如下:资料和工具准备资料方面,大致搜索了百度文库和开源中国上的一些资料,其实都大同小异。
项目目录及源码工程目录大致如下:要特别注意的是:FlexPaperViewer的路径一定要正确,id对上。
另外,可以用官方的Paper.swf 作为测试,只需要将SwfFile的地址改掉即可。
程序运行需要openoffice服务支持启动openoffice服务如下:1.安装服务路径cd C:\Program Files (x86)\OpenOffice 4\program执行soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard 大致显示效果如下:。
1 JSP文件上传简单实例1、index.html代码:<html><head><title>上传图片</title></head><body><form action="do_upload.jsp" method="post" enctype="multipart/form-data"><input type="file" name="Photo"><input type="submit" value="上传"></form></body></html>2、使用到的函数和类说明File类文件和目录路径名的抽象表示形式,File(parent,child)方法根据parent 抽象路径名和child 路径名字符串创建一个新File实例FileOutputStream文件输出流,InputStream输入流,将输入数据看成一根管道,可以形象的将输入流比喻成管道的入口,而输出流比喻成管道的出口。
read(byte[] b) 从此输入流中将最多 b.length 个字节的数据读入一个字节数组中。
read() 从此输入流中读取一个数据字节。
write(int b) 将指定字节写入此文件输出流,write(byte[] b, int off, int len) 将指定字节数组中从偏移量off 开始的len 个字节写入此文件输出流。
write(byte[] b) 将 b.length 个字节从指定字节数组写入此文件输出流中Random.readLine()逐行读入,Random.seek(int pos)设置到此文件开头测量到的文件指针偏移量,该位置发生下一个读取和写入操作,Random.getFilePointer()返回此文件当前偏移量,Random.readByte()此方法从该文件的当前文件指针开始读取第一个字节。
SmartUpload上传图片目标:在Jsp页面中实现文件上传初级篇文件上传是我们程序中会经常使用到的功能,针对于上传的技术也非常多!那么在此介绍两种常用简单的上传方式上传方式一:使用SmartUpload组建进行上传上传方式二:使用Struts的<html:file>标签进行上传我们新建一个Java Web工程,这里使用纯粹的jsp进行上传和显示功能的实现。
我们需要在我们的工程中添加smartUpload.jar包之后我们编写index.jspIndex.jsp ViewIndex.jsp Source需要注意的设置表单的enctype="multipart/form-data"这个值我们可以再Dreamweaver中选我们将表单提交到另一个处理上传请求的doUploadjsp页面我们现在编写处理文件上传的页面doUpload.jsp下面是doUpload.jsp页面中的源代码<%@page language="java"import="java.util.*"pageEncoding="GBK"%><%@page import="com.jspsmart.upload.File"%><%@page import="com.jspsmart.upload.Files"%><%@page import="com.jspsmart.upload.SmartUpload"%><%//实例化上传组件SmartUpload upload=new SmartUpload();//初始化上传组件upload.initialize(this.getServletConfig(),request,response);//开始上传upload.upload();//获取上传的文件列表对象Files f=upload.getFiles();//获取文件对象File fil=f.getFile(0);//去的文件后缀String ext=fil.getFileExt();//判断文件类型是否是jpg格式if(!(ext.equals("jpg"))){out.println("<script type='text/javascript'>alert('文件类型错误');location.replace('index.jsp');</script>");return;}//满足条件进行文件的上传需要注意的是upload使我们webRoot文件夹下的一个目录fil.saveAs("upload/"+fil.getFileName());%>至此我们就完成了一个最简单的图片上传示例。
Java通用文件上传功能实现一、文件上传流程说明:Java文件上传功能是指在Java开发中,实现文件上传的功能,可以用于各种场景,如网站上传图片、文件管理系统等。
以下是一种常见的实现方式:1、创建一个包含文件上传功能的表单页面,用户可以选择要上传的文件并提交表单。
2、在后端Java代码中,接收表单提交的文件数据。
可以使用Apache Commons FileUpload库或Spring框架提供的MultipartFile类来处理文件上传。
3、对接收到的文件进行处理,可以将文件保存到服务器的指定位置,或者将文件存储到数据库中。
4、返回上传成功或失败的信息给用户。
二、代码实现,方案一:在Java中实现文件上传功能可以通过以下步骤来完成:1、创建一个HTML表单,用于选择要上传的文件:<form action="upload"method="post" enctype="multipart/form-data"> <input type="file" name="file" /><input type="submit" value="Upload" /></form>2、创建一个Servlet或者Controller来处理文件上传请求:@WebServlet("/upload")public class UploadServlet extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) {// 获取上传的文件Part filePart = request.getPart("file");String fileName = filePart.getSubmittedFileName();// 指定上传文件的保存路径String savePath = "C:/uploads/" + fileName;// 将文件保存到指定路径filePart.write(savePath);// 返回上传成功的消息response.getWriter().println("File uploaded successfully!");}}3、配置web.xml(如果使用传统的Servlet方式)或者使用注解(如果使用Servlet 3.0+)来映射Servlet。
JSP技术实现上传压缩文件及文件相关信息并解压
韩银锋
【期刊名称】《电脑编程技巧与维护》
【年(卷),期】2015(0)7
【摘要】使用JSP技术实现上传压缩文件包括文件及其描述信息,并在上传后将压缩文件解压到指定的文件夹中.
【总页数】2页(P18-19)
【作者】韩银锋
【作者单位】西安航空职业技术学院,西安710089
【正文语种】中文
【相关文献】
1.一种基于日志结构的自动压缩/解压缩文件系统的实现方案 [J], 甄成;张跃;张衍胜;梁金千
2.在JSP中实现文件上传下载的相关问题及改进方案 [J], 戴洋;陈海
3.信息技术教学系统中利用asp实现文件上传 [J], 董瑞杰
4.信息化管理实现学生电子文件上传解决方案 [J], 庄李平
5.在Windows XP中轻松实现压缩解压缩文件 [J], 张鹏
因版权原因,仅展示原文概要,查看原文内容请购买。
Jsp实现类似百度文库的在线阅读1.首先下载FlashPaper2 并安装。
如果你的系统是win7的话还需要下载一个补丁安装。
关于FlashPaper2 的操作请参考下面的网址。
/view/7575c9114431b90d6c85c775.html2.配置struts2的环境.将下面的架包拷贝到项目中。
3.编写上传文件界面。
代码如下:<%@ page language="java" contentType="text/html; charset=utf-8"pageEncoding="utf-8"%><%@ taglib prefix="s" uri="/struts-tags"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title>UPLOAD</title></head><script type="text/javascript" src="js/wait.js"></script><body><s:form action="upload" method="post"enctype="multipart/form-data"><s:file name="file" label="file name:"></s:file><s:textfield name="name" label="new name:"></s:textfield> <s:submit label="ok" onClick="javascript:wait()" /></s:form></body></html>4.编写上后后跳转的页面。
<%@ page language="java" contentType="text/html; charset=utf-8"pageEncoding="utf-8"%><%@ taglib prefix="s" uri="/struts-tags"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title>suc</title></head><body><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"width="600" height="400"><param name="movie"value="C:\struts\swf\<s:propertyvalue="imageFileName"/>.swf" /><param name="quality" value="high" /></object></body></html>5.编写Action类。
package zzuli.bysj.wh.action;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.InputStream;import java.io.OutputStream;import java.util.Date;import m.util.FlashPaper;import com.opensymphony.xwork2.ActionSupport;public class FileUploadAction extends ActionSupport {p rivate static final long serialVersionUID = 572146812454l ;p rivate static final int BUFFER_SIZE = 15728640 ;p rivate File file;p rivate String fileContentType;p rivate String fileFileName;p rivate boolean flag;p ublic boolean isFlag() {return flag;}p ublic void setFlag(boolean flag) {this.flag = flag;}p ublic String getFileFileName() {return fileFileName;}p ublic void setFileFileName(String fileFileName) {this.fileFileName = fileFileName;}p rivate String imageFileName;p rivate String name;p ublic File getFile() {return file;}p ublic void setFile(File file) {this.file = file;}p ublic String getImageFileName() {return imageFileName;}p ublic void setImageFileName(String imageFileName) { this.imageFileName = imageFileName;}p ublic String getName() {return name;}p ublic void setName(String name) { = name;}p ublic String getFileContentType() {return fileContentType;}p ublic void setFileContentType(String fileContentType) { if(fileContentType.contains("msword")){this.fileContentType = ".doc";}else if(fileContentType.contains("excel")){this.fileContentType = ".xls";}else if(fileContentType.contains("pdf")){this.fileContentType = ".pdf";}else if(fileContentType.contains("powerpoint")){ this.fileContentType = ".ppt";}else{this.fileContentType = ".doc";}}p rivate static void copyFile(File src,File dir){ try{InputStream input = null;OutputStream output = null;try{input = new BufferedInputStream(newFileInputStream(src),BUFFER_SIZE);output = new BufferedOutputStream(newFileOutputStream(dir),BUFFER_SIZE);byte [] buffer = new byte [BUFFER_SIZE];while(input.read(buffer)>0){output.write(buffer);}}catch(Exception e){e.printStackTrace();}finally{if(null != input){input.close();}if(null !=output ){output.close();}}}catch(Exception e){e.printStackTrace();}}p ublic String execute(){imageFileName = String.valueOf(new Date().getTime())+name;// File dirFile = newFile(ServletActionContext.getServletContext().getRealPath("/UploadImages")+"/"+imageFileName);File dirFile = newFile("C:\\struts\\document\\"+imageFileName+this.getFileContentType());copyFile(file,dirFile);int fileSize = 0;try {fileSize = new FileInputStream(file).available()/1024;} catch (Exception e) {e.printStackTrace();}flag =FlashPaper.converter(imageFileName,imageFileName+this.getFileContentType(),fileSize);System.out.println("%%%%%%%%%%%%%%%%%"+flag);return "suc";}}6.编写转换方法:package m.util;public class FlashPaper extends Thread {public static void main(String args[]){converter("1301291936853trhkt","1301291936853trhkt.pdf",100);}public static boolean converter(String swfName,String documentName,int fileSize){int sleeptime = 0;boolean st_return = true;Runtime pro = Runtime.getRuntime();try {String converter="C:\\Program Files\\Macromedia\\FlashPaper 2\\FlashPrinter.exe -o C:\\struts\\swf\\"+swfName+".swfC:\\struts\\document\\"+documentName;pro.exec(converter);Thread.sleep(sleeptime);} catch (Exception e) {System.out.println("执行失败");e.printStackTrace();}return st_return;}}7.编写配置文件:<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN""/dtds/struts-2.0.dtd"><struts><package name ="fileUploadDemo" extends ="struts-default" ><action name ="upload" class ="zzuli.bysj.wh.action.FileUploadAction" > <interceptor-ref name ="fileUpload" >8. <param name ="allowedTypes" >application/msword,application/vnd.ms-excel,application/pdf,application/vnd.ms-powerpoint</param ><param name ="maximumSize">15728640</param></interceptor-ref ><interceptor-ref name ="fileUploadStack" /><result name ="suc">/suc.jsp </result ></action ></package ></struts>注意:上传的文件不要太大,因为后台处理的时间较长,而页面跳转的时间比较短,如果文件太大的话后台没有处理完就已经跳转,在预览的时候找不到相应的文件。