1、Jsp页面,上传文件
<!DOCTYPE html> <html> <head> <!-- 为velocity传递参数 --> #navLevel1Param("artifactList") ##set( $memberLeftBarParameter = "active" ) <!-- meta及资源引用部分 --> #parse("./common/common_head_title.html") #parse("./common/common_head_meta.html") #parse("./common/common_head_ref.html") #parse("./common/common_message_show.html") </head> <body class='contrast-blue'> <!-- head部分--> #parse("./common/common_head.html") <div id='wrapper'> <div id='main-nav-bg'></div> <!-- 左侧导航栏 --> #parse("/common/common_left.html") <section id='content'> <div class='container-fluid'> <div class='row-fluid' id='content-wrapper'> <div class='span12'> <div class='row-fluid'> <div class='span12'> <div class='page-header'> <h1 class='pull-left'> <i class='icon-ok'></i> <span>新增图片信息</span> </h1> <div class='pull-right'> <ul class='breadcrumb'> <li> <a href="index.html"><i class='icon-bar-chart'></i> </a> </li> <li class='separator'> <i class='icon-angle-right'></i> </li> <li> Forms </li> <li class='separator'> <i class='icon-angle-right'></i> </li> <li class='active'>Validations</li> </ul> </div> </div> </div> </div> <div class='row-fluid'> <div class='span12 box'> <div class='box-header blue-background'> <div class='title'>图片信息</div> <!-- <div class='actions'> <a href="#" class="btn box-remove btn-mini btn-link"><i class='icon-remove'></i> </a> <a href="#" class="btn box-collapse btn-mini btn-link"><i></i> </a> </div> --> </div> <div class='box-content box-no-padding'> <form accept-charset="UTF-8" id="frm2" name="frm2" action="${basePath}artifact/artifactSave" class="form form-horizontal form-striped" method="post" style="margin-bottom: 0;"> <div style="margin:0;padding:0;display:inline"> <input name="utf8" type="hidden" value="✓" /> <input name="artifactPath" type="hidden" id="artifactPath"/> <input name="artifactLength" type="hidden" id="artifactLength"/> <input name="authenticity_token" type="hidden" value="${authenticity_token}" /> </div> <div class='control-group'> <label class='control-label' for='inputText2'>图片名称</label> <div class='controls'> <input class='input-block-level' name="videoDesc" id='videoDesc' placeholder='图片名称' type='text' /> </div> </div> <div class='control-group'> <label class='control-label' for='inputText2'>栏目</label> <div class='controls'> <!-- 输入下拉框 s --> <div class='span5'> <div class='row-fluid' id="divSubject" subjectPid="$!{unit.subjectPid}"> <select class='select2 input-block-level' id="subjectSelect" name="unitId"> <option value='$!{unit.subjectPid}' />$!{subjectName} </select> </div> </div> <!-- 输入下拉框 e --> </div> </div> <div class='control-group'> <label class='control-label' for='inputTextArea2'>附件描述</label> <div class='controls'> <textarea class='input-block-level' id='inputTextArea2' name="artifactPurpose" placeholder='填写附件描述信息' rows='3'></textarea> </div> </div> </form> <div class="box-content"> <form action="${basePath}fileUpload" enctype="multipart/form-data" id="fileupload" method="POST"> <div class="row-fluid fileupload-buttonbar"> <div style="padding-left:93px;" class="span7"> <span style=float:left;padding-right:36px;">上传图片</span> <span class="btn btn-success fileinput-button"> <i class="icon-plus icon-white"></i> <span>添加...</span> <input data-bfi-disabled="" multiple="" name="files[]" type="file"> </span> <button class="btn btn-primary start" type="submit"> <i class="icon-upload icon-white"></i> <span>开始上传</span> </button> </div> <div class="span5 fileupload-progress fade"> <div aria-valuemax="100" aria-valuemin="0" class="progress progress-success progress-striped active" role="progressbar"> <div class="bar" style="width:0%;"></div> </div> <div class="progress-extended"> </div> </div> </div> <div class="fileupload-loading"></div> <br> <table class="table table-striped" role="presentation"> <tbody class="files" data-target="#modal-gallery" data-toggle="modal-gallery"></tbody> </table> </form> </div> <script id="template-upload" type="text/x-tmpl"> {% for (var i=0, file; file=o.files[i]; i++) { %} <tr class="template-upload fade"> <td class="preview"><span class="fade"></span></td> <td class="name"><span>{%=file.origName%}</span></td> <td class="size"><span>{%=o.formatFileSize(file.size)%}</span></td> {% if (file.error) { %} <td class="error" colspan="2"><span class="label label-important">Error</span> {%=file.error%}</td> {% } else if (o.files.valid && !i) { %} <td> <div class="progress progress-success progress-striped active" role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="0"><div class="bar" style="width:0%;"></div></div> </td> <td>{% if (!o.options.autoUpload) { %} <button class="btn btn-primary start"> <i class="icon-upload icon-white"></i> <span>开始</span> </button> {% } %}</td> {% } else { %} <td colspan="2"></td> {% } %} <td>{% if (!i) { %} <button class="btn btn-warning cancel"> <i class="icon-ban-circle icon-white"></i> <span>取消</span> </button> {% } %}</td> </tr> {% } %} </script> <script id="template-download" type="text/x-tmpl"> {% for (var i=0, file; file=o.files[i]; i++) { %} <tr class="template-download fade"> {% if (file.error) { %} <td></td> <td class="name"><span>{%=file.origName%}</span></td> <td class="size"><span>{%=o.formatFileSize(file.size)%}</span></td> <td class="error" colspan="2"><span class="label label-important">Error</span> {%=file.error%}</td> {% } else { %} <td class="preview">{% if (file.thumbnailUrl) { %} <a href="{%=file.url%}" title="{%=file.origName%}" data-gallery="gallery" download="{%=file.origName%}"><img src="{%=file.thumbnailUrl%}"></a> {% } %}</td> <td class="name"> <a class="fileUrl" href="{%=file.url%}" title="{%=file.origName%}" data-gallery="{%=file.thumbnail_url&&'gallery'%}" download="{%=file.origName%}">{%=file.origName%}</a> </td> <td class="imgUrl">{%=file.url%}</td> <td class="size"><span class="fileLength">{%=o.formatFileSize(file.size)%}</span></td> <td colspan="2"></td> {% } %} <td> <button class="btn btn-danger delete" data-type="{%=file.deleteType%}" data-url="{%=file.deleteUrl%}"{% if (file.delete_with_credentials) { %} data-xhr-fields='{"withCredentials":true}'{% } %}> <i class="icon-trash icon-white"></i> <span>删除</span> </button> <input type="checkbox" name="delete" value="1" class="toggle"> </td> </tr> {% } %} </script> <div class='form-actions' style='margin-bottom:0'> <div class='btn btn-primary btn-large'> <button class='icon-save' name="button" type="submit"></button> </div> </div> </div> </div> </div> </div> </div> </div> </section> </div> <!-- footer部分--> #parse("/common/common_footer_ref.html") #parse("/macros/page/common_page.vm") <script type="text/javascript" src="${basePath}/static/manager/js/artifact/artifactEdit.js" ></script> <script type="text/javascript"> $('.icon-save').click(function(){ var videoDesc = $('#videoDesc').val(); if (videoDesc == "" || videoDesc == null) { alert("图片名称不能为空!"); return false; } var subjectSelect = $('#subjectSelect').val(); if (subjectSelect.length < 1) { alert("请选择栏目!"); return false; } var inputTextArea2 = $('#inputTextArea2').val(); if(inputTextArea2.length < 1) { alert("请填写附件描述!"); return false; } text = $(".fileUrl").map(function() { return $(this).attr('href'); }).get().join(","); //alert("text: "+ text); if (text != null ) { $('#artifactPath').val(text); } text = $(".fileLength").map(function() { return $(this).text(); }).get().join(","); //alert("text: "+ text); if (text != null) { $('#artifactLength').val(text); } $("#frm2").submit(); }); </script> </body> </html>
2、后台Controller处理文件
package com.jydcms.admin.web.controller; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; import com.jyd.fileupload.UploadFactory; import com.jyd.fileupload.beans.FileInfo; import com.jydcms.web.controller.BaseController; /** * 上传文件 * @author Administrator * */ @Controller public class UploadController extends BaseController{ @Resource UploadFactory fileUploaderFactory; /** * 得到本分类下的条目列表 * @author cgxue * @date 2016-05-5 * @param request * @param response * @return * */ @RequestMapping(value="/upload/fileUpload",method={RequestMethod.GET,RequestMethod.POST}) @ResponseBody public Map<String, Object> fileUpload(HttpServletRequest request, HttpServletResponse response){ List<FileInfo> filelist = fileUploaderFactory.getUploader().doUpload(request); Map<String, Object> map = new HashMap<String, Object>(); map.put("files", filelist); return map; } @RequestMapping(value="/upload/fileDelete",method={RequestMethod.GET,RequestMethod.POST}) @ResponseBody public Map<String, Object> fileDelete(HttpServletRequest request, HttpServletResponse response){ fileUploaderFactory.getUploader().deleteFile(request); Map<String, Object> map = new HashMap<String, Object>(); map.put("delete","true"); return map; } }
3、文件上传spring配制文件
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd "> <!-- add by xiongzhao 文件上传配置 start--> <!--配置上传工具处理器 --> <bean id="localUploader" class="com.jyd.fileupload.LocalUploader" scope="singleton" /> <!-- 图片上传配置 --> <bean id="imgUploaderConfig" class="com.jyd.fileupload.beans.UploadConfig" scope="singleton" > <!-- 文件保存位置 --> <property name="repositoryRelativePath" value="/apache-tomcat-7.0.50/cms/ROOT/upload/image/"></property> <!-- 上传文件允许最大值 --> <property name="maxSize" value="2097152"></property> <!-- 允许上传的图片类型 --> <property name="allowExten" value="jpg,gif,png,bmp"></property> <!-- 是否生成缩略图 --> <property name="allowGenerateThumbnail" value="true"></property> <!-- 图片域名地址 --> <property name="fileDomain" value="http://cmstest:8080/upload/image/"></property> <!-- 删除操作的url地址 --> <property name="deleteUrl" value="http://localhost:8080/jydcms-admin/fileUpload"></property> </bean> <!-- 文件上传配置 --> <bean id="fileUploaderConfig" class="com.jyd.fileupload.beans.UploadConfig" scope="singleton" > <!-- 文件保存位置 --> <property name="repositoryRelativePath" value="/apache-tomcat-7.0.50/cms/ROOT/upload/image/"></property> <!-- 上传文件允许最大值 --> <property name="maxSize" value="8097152"></property> <!-- 允许上传的文件类型 --> <property name="allowExten" value="txt,doc,xls,ppt,pdf,docx,zip,tar"></property> <!-- 是否生成缩略图,如果为非图片,即使设置为true,系统也不会生成 --> <property name="allowGenerateThumbnail" value="false"></property> <!-- 文件域名地址 --> <property name="fileDomain" value="http://cmstest:8080/upload/image/"></property> <!-- 删除操作的url地址 --> <property name="deleteUrl" value="http://192.168.30.16:8080/jydcms-admin/upload/fileDelete"></property> </bean> <!-- 图片上传工具的bean配置 --> <bean id="imgUploaderFactory" class="com.jyd.fileupload.UploadFactory" scope="singleton"> <property name="uploadConfig" ref="imgUploaderConfig"></property> <property name="uploader" ref="localUploader"></property> </bean> <!-- 文件上传工具的bean配置 --> <bean id="fileUploaderFactory" class="com.jyd.fileupload.UploadFactory" scope="singleton"> <property name="uploadConfig" ref="fileUploaderConfig"></property> <property name="uploader" ref="localUploader"></property> </bean> </beans>
相关推荐
### 不刷当前JSP页面上传文件的实例 在Web开发中,经常需要处理文件上传功能。传统的文件上传方式是通过表单提交至服务器,这种方式在文件上传后会刷新整个页面,有时这并不是我们想要的结果。特别是在用户体验方面...
在Web开发中,用户经常需要上传文件,例如图片、文档等。传统的HTML表单上传只能处理一个文件,但随着技术的发展,多文件上传的需求越来越普遍。本篇文章将详细探讨如何使用JSP(JavaServer Pages)和Flash上传工具...
本篇将详细讲解如何在JSP页面中实现文件上传功能,并涉及到必要的jar包。 文件上传功能是Web应用程序中的常见需求,例如用户可能需要上传个人头像、文档或图片等。在JSP中,我们通常使用Servlet来处理文件上传,...
例如,防止非法文件类型上传、控制上传文件大小以防DoS攻击、保护服务器存储空间不被滥用等。为了提高用户体验,还可以添加进度条显示上传进度,或者提供取消上传的功能。 总的来说,"jsp页面内实现批量上传下载"这...
acceptFile.jsp文件中,使用FORM标签来上传文件,使用INPUT控件来选择要上传的文件。acceptFile.jsp文件将上传的文件保存到服务器的文件系统中。 三、JSP文件下载的实现 在示例代码中,使用了自定义的UpFile.tag...
- 文件上传可能会导致内存和磁盘空间问题,因此建议限制上传文件的大小,并定期清理旧的上传文件。 - 为了安全,应确保文件上传目录不可被直接访问,避免用户直接下载服务器上的敏感文件。 - 考虑使用第三方库,如...
`jsp异步上传文件`这个主题聚焦于如何利用JavaServer Pages (JSP)、Servlet以及JavaScript的ajaxFileupload.js插件来实现在Web应用中异步上传文件。这种方式可以提供更好的用户体验,因为文件上传不会阻塞页面的其他...
在多文件上传中,JSP页面会提交表单到一个Servlet,Servlet负责接收文件并进行处理。 3. **Multipart解析器**: 文件上传涉及到二进制数据,不能直接通过HTTP的普通请求来发送。因此,我们需要使用Multipart解析器...
JSP页面通常不直接处理表单提交,而是通过一个关联的Servlet来接收并处理这些数据。 在Servlet中,我们可以使用Apache Commons FileUpload库来解析多部分请求。该库提供API来提取文件内容并保存到服务器的指定位置...
在服务器端,我们需要一个JSP页面(如`upload.jsp`)来接收和处理上传请求。使用`<jsp:useBean>`和`<jsp:setProperty>`标签可以获取表单数据,而`<jsp:include>`标签可以用来处理上传的文件。以下是`upload.jsp`的...
在Java服务器页面(JSP)中处理文件上传是一项常见的任务,尤其在开发Web应用程序时,如用户需要上传图片、文档或其他类型的数据。本知识点将详细讲解JSP中的文件上传类和相关技术,以及如何实现一个基本的文件上传...
JSP页面可以包含表单元素让用户选择要上传的文件,而Servlet接收这些请求,处理文件并返回响应。为了使代码更简洁和可维护,可以将文件操作封装到单独的服务层或者DAO中。 在项目的`upload`子目录中,可能包含了...
9. **源码分析**:由于压缩包内文件名仅提供"srcfans.com",无法详细分析具体实现,但通常源码会包含JSP页面、Servlet处理类、JavaScript文件以及可能的CSS样式文件。这些文件分别负责界面展示、业务逻辑处理、用户...
上传成功后,JSP页面应向用户返回相应的消息,告知文件已成功上传或显示错误信息。例如: ```jsp <jsp:forward page="success.jsp"> <jsp:param name="message" value="文件上传成功!"/> </jsp:forward> ``` ...
"Jsp上传文件所需jar包"这一主题聚焦于在JSP环境中实现文件上传所需的依赖库。在这个过程中,我们需要重点关注两个主要组件:Servlet和相关的第三方库。 首先,Servlet是Java EE规范的一部分,它允许服务器端处理...
首先,我们需要创建一个名为 uploadFile.jsp 的页面,用于上传文件。在这个页面中,我们将使用 HTML 的 form 表单来上传文件。在 form 表单中,我们需要添加 enctype="multipart/form-data" 属性,以标明此表单的...
【JSP上传文件Demo】是基于Java服务器页面(JSP)技术实现的一种文件上传功能的示例。在Web开发中,文件上传是一个常见的需求,例如用户上传头像、提交附件等。`SmartUpload`是一个流行的Java库,专门用于处理文件...
2. 初始化SmartUpload对象:在JSP页面的Java代码块中,创建SmartUpload实例,并进行初始化,设置上传文件的大小限制、类型限制等参数。 3. 处理文件上传:在表单提交事件的处理函数中,调用SmartUpload的成员方法,...
上传文件"> ``` 对应的Servlet处理代码可能如下: ```java import org.apache.commons.fileupload.FileItemIterator; import org.apache.commons.fileupload.FileItemStream; import org.apache.commons....
在这个"Jsp页面实现文件上传下载"的示例中,我们将深入探讨如何使用JSP来处理文件上传和下载的功能。 一、文件上传 1. **Servlet API**: 文件上传主要依赖于Servlet API中的`Part`接口,它是在Servlet 3.0版本中...