﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-Steven-文章分类-Best solution</title><link>http://www.blogjava.net/coderMoon/category/55213.html</link><description>You're still young    --that's your fault</description><language>zh-cn</language><lastBuildDate>Sun, 28 May 2017 05:47:26 GMT</lastBuildDate><pubDate>Sun, 28 May 2017 05:47:26 GMT</pubDate><ttl>60</ttl><item><title>【转】几个前端时间插件总结</title><link>http://www.blogjava.net/coderMoon/articles/432557.html</link><dc:creator>wen.ding</dc:creator><author>wen.ding</author><pubDate>Sat, 27 May 2017 06:29:00 GMT</pubDate><guid>http://www.blogjava.net/coderMoon/articles/432557.html</guid><wfw:comment>http://www.blogjava.net/coderMoon/comments/432557.html</wfw:comment><comments>http://www.blogjava.net/coderMoon/articles/432557.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/coderMoon/comments/commentRss/432557.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/coderMoon/services/trackbacks/432557.html</trackback:ping><description><![CDATA[<h2>几个前端时间插件总结</h2><p style="margin-top: 10px; margin-bottom: 10px; padding: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">总结一下几款时间插件，分别是&nbsp;<br style="margin: 0px; padding: 0px;" />- [ ]&nbsp;<strong style="margin: 0px; padding: 0px;">jeDate</strong>&nbsp;<a href="http://blog.csdn.net/kanxingwang/article/details/github.com/singod/jeDate" style="margin: 0px; padding: 0px; color: #000000;">下载地址</a>&nbsp;<br style="margin: 0px; padding: 0px;" />- [ ]&nbsp;<strong style="margin: 0px; padding: 0px;">bootstrap-datetimepicker</strong>&nbsp;<a href="http://www.bootcss.com/p/bootstrap-datetimepicker/" style="margin: 0px; padding: 0px; color: #000000;">下载地址</a>&nbsp;<br style="margin: 0px; padding: 0px;" />- [ ]&nbsp;<strong style="margin: 0px; padding: 0px;">My97DatePicker</strong>&nbsp;<a href="http://www.my97.net/dp/down.asp" style="margin: 0px; padding: 0px; color: #000000;">下载地址</a>&nbsp;<br style="margin: 0px; padding: 0px;" />- [ ]&nbsp;<strong style="margin: 0px; padding: 0px;"><a title="jQuery知识库" href="http://lib.csdn.net/base/jquery" target="_blank" style="margin: 0px; padding: 0px; color: #000000;">jQuery</a>&nbsp;UI 插件Datepicker</strong>&nbsp;<a href="http://api.jqueryui.com/datepicker/" style="margin: 0px; padding: 0px; color: #000000;">下载地址</a></p><p style="margin-top: 10px; margin-bottom: 10px; padding: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">并没有哪款完全超越另外一款，主要还是看是否合适吧。&nbsp;<br style="margin: 0px; padding: 0px;" />首先说一下现在项目就在用的&nbsp;<strong style="margin: 0px; padding: 0px;">jeDate</strong>吧。</p><h2><a name="t1" style="margin: 0px; padding: 0px;"></a>jeDate</h2><p style="margin-top: 10px; margin-bottom: 10px; padding: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><img title="" src="http://img.blog.csdn.net/20160608144917344" alt="这里写图片描述" style="margin: 0px; padding: 0px; border: none; max-width: 800px;" />&nbsp;<br style="margin: 0px; padding: 0px;" /><img title="" src="http://img.blog.csdn.net/20160608145130097" alt="这里写图片描述" style="margin: 0px; padding: 0px; border: none; max-width: 800px;" />&nbsp;<br style="margin: 0px; padding: 0px;" />eDate除了包含日期范围限制、开始日期设定、自定义日期格式、时间戳转换、当天的前后若干天返回、时分秒选择、智能响应、自动纠错、节日识别，操作等常规功能外，还拥有更多趋近完美的解决方案。&nbsp;<br style="margin: 0px; padding: 0px;" />目前只适合PC端。&nbsp;<br style="margin: 0px; padding: 0px;" />因为是最近新出的，功能比较完善，支持风格切换，显示节假日，还有很多强大的功能。&nbsp;<br style="margin: 0px; padding: 0px;" /><img title="" src="http://blog.csdn.net/kanxingwang/article/details/Z5II828_Y0%7BYM97X2%7DHH.png" alt="Alt text" style="margin: 0px; padding: 0px; border: none; max-width: 800px;" /><img title="" src="http://blog.csdn.net/kanxingwang/article/details/~A%60~PKKA$HA~8D73~H03XJ.png" alt="Alt text" style="margin: 0px; padding: 0px; border: none; max-width: 800px;" />&nbsp;<br style="margin: 0px; padding: 0px;" />如上图所看到的，jeDate 的界面这个样子，值得一提的是，一般时间的input 输入框 是设置为只读的。所以需要其时间插件内部提供<strong style="margin: 0px; padding: 0px;">清空</strong>&nbsp;调用功能。而下面要说的&nbsp;<strong style="margin: 0px; padding: 0px;">bootstrap-datetimepicker</strong>&nbsp;就没有提供这个功能，需要自己修改实现。&nbsp;<br style="margin: 0px; padding: 0px;" />同其他插件不同的地方在于，下方有时分秒的选项。点击进入相应的设置界面。需要注意的是 js 中调用方法设置前面后面时间相互制约的限制&nbsp;<br style="margin: 0px; padding: 0px;" />代码如下</p><pre style="margin-top: 0px; margin-bottom: 0px; padding: 0px; white-space: pre-wrap; word-wrap: break-word; color: #333333; background-color: #ffffff;"><code style="margin: 0px; padding: 0px;">var startDate = jeDate({     dateCell:"#start-date",     format:"YYYY-MM-DD hh:mm:ss",     isTime:true,     isinitVal:true,     minDate:jeDate.now(0),     choosefun:function(val) {         endDate.config.minDate = val;         requireDate.config.minDate = val;         $("#start-date").blur();     },     okfun:function(val) {         endDate.config.minDate = val;         requireDate.config.minDate = val;         $("#start-date").blur();     } }); var endDate = jeDate({     dateCell:"#end-date",     format:"YYYY-MM-DD hh:mm:ss",     isTime:true,     minDate:jeDate.now(0),     choosefun:function(val) {         startDate.config.maxDate = val;         $("#end-date").blur();     },     okfun:function(val) {         startDate.config.maxDate = val;         $("#end-date").blur();     } });  var requireDate = jeDate({     dateCell:"#require-date",     format:"YYYY-MM-DD",     isTime:false,     minDate:jeDate.now(0) }); </code></pre><p style="margin-top: 10px; margin-bottom: 10px; padding: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">具体参考相关的API</p><h2><a name="t2" style="margin: 0px; padding: 0px;"></a>bootstrap-datetimepicker</h2><p style="margin-top: 10px; margin-bottom: 10px; padding: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><img title="" src="http://img.blog.csdn.net/20160608145219849" alt="这里写图片描述" style="margin: 0px; padding: 0px; border: none; max-width: 800px;" />&nbsp;<br style="margin: 0px; padding: 0px;" />设置前后时间互相制约的方法</p><pre style="margin-top: 0px; margin-bottom: 0px; padding: 0px; white-space: pre-wrap; word-wrap: break-word; color: #333333; background-color: #ffffff;"><code style="margin: 0px; padding: 0px;">// 初始化第三方插件 ArticleManager.prototype.initVendorComponent = function() {     // 初始化时间插件     // 设置只能选今天以前的时间     $('#createBeginDate').datetimepicker(datetimePickerOptions).on('show',function(e) {             $('#createBeginDate').datetimepicker('setEndDate',new Date());});     $('#createBeginDate').datetimepicker(datetimePickerOptions).on('changeDate',function(e) {             $('#createBeginDate').datetimepicker('setEndDate',new Date());             $('#createEndDate').datetimepicker('setStartDate',$(this).val());});     // 设置只能选今天以前的时间     $('#createEndDate').datetimepicker(datetimePickerOptions).on('show',function(e) {                 $('#createEndDate').datetimepicker('setEndDate', new Date());             });     $('#createEndDate').datetimepicker(datetimePickerOptions).on('changeDate',function(e) {                 $('#createEndDate').datetimepicker('setEndDate', new Date());                 $('#createBeginDate').datetimepicker('setStartDate',$(this).val());}); }; </code></pre><p style="margin-top: 10px; margin-bottom: 10px; padding: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><img title="" src="http://blog.csdn.net/kanxingwang/article/details/L$V%6099YMIREDO6NRPU~263.png" alt="Alt text" style="margin: 0px; padding: 0px; border: none; max-width: 800px;" /></p><p style="margin-top: 10px; margin-bottom: 10px; padding: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">和上面图中所看到的，一个主要的缺陷就是没有原生的清除所选择日期按钮。&nbsp;<br style="margin: 0px; padding: 0px;" />我们项目原来用的就是这个插件，后来手动在原生js里面加入了清除按钮。&nbsp;<br style="margin: 0px; padding: 0px;" />但去除这一点，这个插件也是没什么问题的。风格是原生的bootstrap 风格，如果需要修改，需要自己个性化定制。&nbsp;<br style="margin: 0px; padding: 0px;" />但其实也给出了没有清除按钮的解决办法，<strong style="margin: 0px; padding: 0px;">forceParse</strong>&nbsp;方法，设置为true 会强制更改用户输入的值，转变为符合规定的近似的值，也就是说这样的话不必把输入框设置成只读的了。&nbsp;<br style="margin: 0px; padding: 0px;" />点到为止，其他欢迎去看官方API。这个插件总体上来说也是没什么问题的。</p><h2><a name="t3" style="margin: 0px; padding: 0px;"></a><strong style="margin: 0px; padding: 0px;">jquery UI 插件Datepicker</strong></h2><p style="margin-top: 10px; margin-bottom: 10px; padding: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><img title="" src="http://img.blog.csdn.net/20160608145335600" alt="这里写图片描述" style="margin: 0px; padding: 0px; border: none; max-width: 800px;" /></p><p style="margin-top: 10px; margin-bottom: 10px; padding: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">目前就我所知，jquery UI 并不是很火的样子，现在前端这些框架更新迭代都很快，以前一些老项目确实有很多直接基于这种框架去做的，组件规范化。使得我们这些后端人员也能做出像模像样的前端页面，但是到现在的互联网确实不够用了。这就需要专业的前端人员和设计人员了，毕竟如果只是单独给企业做项目，更加注重功能的实现，而现在的项目更加注重体验。</p><pre style="margin-top: 0px; margin-bottom: 0px; padding: 0px; white-space: pre-wrap; word-wrap: break-word; color: #333333; background-color: #ffffff;"><code style="margin: 0px; padding: 0px;">  //等待dom元素加载完毕.       $(function(){           $("#selectDate").datepicker({//添加日期选择功能           numberOfMonths:1,//显示几个月           showButtonPanel:true,//是否显示按钮面板           dateFormat: 'yy-mm-dd',//日期格式           clearText:"清除",//清除日期的按钮名称           closeText:"关闭",//关闭选择框的按钮名称           yearSuffix: '年', //年的后缀           showMonthAfterYear:true,//是否把月放在年的后面           defaultDate:'2011-03-10',//默认日期           minDate:'2011-03-05',//最小日期           maxDate:'2011-03-20',//最大日期           monthNames: ['一月','二月','三月','四月','五月','六月','七月','八月','九月','十月','十一月','十二月'],           dayNames: ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'],           dayNamesShort: ['周日','周一','周二','周三','周四','周五','周六'],           dayNamesMin: ['日','一','二','三','四','五','六'],           onSelect: function(selectedDate) {//选择日期后执行的操作               alert(selectedDate);           }           });       });   </code></pre><p style="margin-top: 10px; margin-bottom: 10px; padding: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">如上图所示，原生的也是没有日期的清除和时间的限制（这个不确定了）</p><p style="margin-top: 10px; margin-bottom: 10px; padding: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">现在不是经常使用的插件，但如果需要还是没有问题的，可能需要个性化定制一些。</p><h2><a name="t4" style="margin: 0px; padding: 0px;"></a><strong style="margin: 0px; padding: 0px;">My97DatePicker</strong></h2><p style="margin-top: 10px; margin-bottom: 10px; padding: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><img title="" src="http://img.blog.csdn.net/20160608145402335" alt="这里写图片描述" style="margin: 0px; padding: 0px; border: none; max-width: 800px;" />&nbsp;<br style="margin: 0px; padding: 0px;" /><img title="" src="http://blog.csdn.net/kanxingwang/article/details/Z%7BH54YWGFQOU%7DYB4[H%7D5.png" alt="Alt text" style="margin: 0px; padding: 0px; border: none; max-width: 800px;" /></p><p style="margin-top: 10px; margin-bottom: 10px; padding: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">时间比较久远的一款插件，功能还算丰富，支持日期输入查询。&nbsp;<br style="margin: 0px; padding: 0px;" />这里我就不再多说。</p><pre style="margin-top: 0px; margin-bottom: 0px; padding: 0px; white-space: pre-wrap; word-wrap: break-word; color: #333333; background-color: #ffffff;"><code style="margin: 0px; padding: 0px;">起始日期功能 </code></pre><p style="margin-top: 10px; margin-bottom: 10px; padding: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">注意:日期格式必须与 realDateFmt 和 realTimeFmt 一致而不是与 dateFmt 一致</p><p style="margin-top: 10px; margin-bottom: 10px; padding: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">有时在项目中需要选择生日之类的日期,而默认点开始日期都是当前日期,导致年份选择非常麻烦,你可以通过起始日期功能加上配置alwaysUseStartDate属性轻松解决此类问题</p><p style="margin-top: 10px; margin-bottom: 10px; padding: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">日期的范围限制也算比价灵活</p><p style="margin-top: 10px; margin-bottom: 10px; padding: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">静态限制&nbsp;<br style="margin: 0px; padding: 0px;" />注意:日期格式必须与 realDateFmt 和 realTimeFmt 一致而不是与 dateFmt 一致</p><p style="margin-top: 10px; margin-bottom: 10px; padding: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">你可以给通过配置minDate(最小日期),maxDate(最大日期)为静态日期值,来限定日期的范围</p><pre name="code" style="margin-top: 0px; margin-bottom: 0px; padding: 0px; white-space: pre-wrap; word-wrap: break-word; color: #333333; background-color: #ffffff;"><code fsharp=""  has-numbering"="" style="margin: 0px; padding: 0px;">&lt;input <span style="margin: 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000ff;">type=<span style="margin: 0px; padding: 0px; color: #a31515;">"text" <span style="margin: 0px; padding: 0px; color: #0000ff;">class=<span style="margin: 0px; padding: 0px; color: #a31515;">"Wdate" id=<span style="margin: 0px; padding: 0px;">"d414" onfocus=<span style="margin: 0px; padding: 0px;">"WdatePicker({dateFmt:'H:mm:ss',minDate:'8:00:00',maxDate:'11:30:00'})"/&gt;</span></span></span></span></span></span></span></code></pre><ul style="margin: 0px 0px 1em 40px; padding: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><li style="margin: 0px; padding: 0px; list-style-type: disc;">1</li></ul><ul style="margin: 0px 0px 1em 40px; padding: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><li style="margin: 0px; padding: 0px; list-style-type: disc;">1</li></ul><p style="margin-top: 10px; margin-bottom: 10px; padding: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">动态限制</p><p style="margin-top: 10px; margin-bottom: 10px; padding: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">你可以通过系统给出的动态变量,如%y(当前年),%M(当前月)等来限度日期范围,你还可以通过{}进行表达式运算,如:{%d+1}:表示明天&nbsp;<br style="margin: 0px; padding: 0px;" />动态变量表&nbsp;<br style="margin: 0px; padding: 0px;" />格式 说明&nbsp;<br style="margin: 0px; padding: 0px;" />%y 当前年&nbsp;<br style="margin: 0px; padding: 0px;" />%M 当前月&nbsp;<br style="margin: 0px; padding: 0px;" />%d 当前日&nbsp;<br style="margin: 0px; padding: 0px;" />%ld 本月最后一天&nbsp;<br style="margin: 0px; padding: 0px;" />%H 当前时&nbsp;<br style="margin: 0px; padding: 0px;" />%m 当前分&nbsp;<br style="margin: 0px; padding: 0px;" />%s 当前秒&nbsp;<br style="margin: 0px; padding: 0px;" />{} 运算表达式,如:{%d+1}:表示明天</p><h1><a name="t5" style="margin: 0px; padding: 0px;"></a>F{} {}之间是函数可写自定义JS代码</h1><p style="margin-top: 10px; margin-bottom: 10px; padding: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">示例4-2-1 只能选择今天以前的日期(包括今天)</p><pre name="code" style="margin-top: 0px; margin-bottom: 0px; padding: 0px; white-space: pre-wrap; word-wrap: break-word; color: #333333; background-color: #ffffff;"><code fsharp=""  has-numbering"="" style="margin: 0px; padding: 0px;">&lt;input id=<span style="margin: 0px; padding: 0px; color: #a31515;">"d421" <span style="margin: 0px; padding: 0px; color: #0000ff;">class=<span style="margin: 0px; padding: 0px; color: #a31515;">"Wdate" <span style="margin: 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000ff;">type=<span style="margin: 0px; padding: 0px; color: #a31515;">"text" onfocus=<span style="margin: 0px; padding: 0px;">"WdatePicker({skin:'whyGreen',maxDate:'%y-%M-%d'})"/&gt;</span></span></span></span></span></span></span></code></pre><ul style="margin: 0px 0px 1em 40px; padding: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><li style="margin: 0px; padding: 0px; list-style-type: disc;">1</li></ul><ul style="margin: 0px 0px 1em 40px; padding: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><li style="margin: 0px; padding: 0px; list-style-type: disc;">1</li></ul><p style="margin-top: 10px; margin-bottom: 10px; padding: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">示例4-2-2 使用了运算表达式 只能选择今天以后的日期(不包括今天)</p><pre name="code" style="margin-top: 0px; margin-bottom: 0px; padding: 0px; white-space: pre-wrap; word-wrap: break-word; color: #333333; background-color: #ffffff;"><code fsharp=""  has-numbering"="" style="margin: 0px; padding: 0px;">&lt;input id=<span style="margin: 0px; padding: 0px; color: #a31515;">"d422" <span style="margin: 0px; padding: 0px; color: #0000ff;">class=<span style="margin: 0px; padding: 0px; color: #a31515;">"Wdate" <span style="margin: 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000ff;">type=<span style="margin: 0px; padding: 0px; color: #a31515;">"text" onfocus=<span style="margin: 0px; padding: 0px;">"WdatePicker({minDate:'%y-%M-{%d+1}'})"/&gt;</span></span></span></span></span></span></span></code></pre><ul style="margin: 0px 0px 1em 40px; padding: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><li style="margin: 0px; padding: 0px; list-style-type: disc;">1</li></ul><ul style="margin: 0px 0px 1em 40px; padding: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><li style="margin: 0px; padding: 0px; list-style-type: disc;">1</li></ul><p style="margin-top: 10px; margin-bottom: 10px; padding: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">示例4-2-3 只能选择本月的日期1号至本月最后一天</p><pre name="code" style="margin-top: 0px; margin-bottom: 0px; padding: 0px; white-space: pre-wrap; word-wrap: break-word; color: #333333; background-color: #ffffff;"><code perl=""  has-numbering"="" style="margin: 0px; padding: 0px;">&lt;input id=<span style="margin: 0px; padding: 0px; color: #a31515;">"d423" class=<span style="margin: 0px; padding: 0px;">"Wdate" type=<span style="margin: 0px; padding: 0px;">"text" onfocus=<span style="margin: 0px; padding: 0px;">"WdatePicker({minDate:'<span style="margin: 0px; padding: 0px; color: green;">%y-<span style="margin: 0px; padding: 0px;">%M-01',maxDate:'<span style="margin: 0px; padding: 0px;">%y-<span style="margin: 0px; padding: 0px;">%M-<span style="margin: 0px; padding: 0px;">%ld'})"/&gt;</span></span></span></span></span></span></span></span></span></code></pre><ul style="margin: 0px 0px 1em 40px; padding: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><li style="margin: 0px; padding: 0px; list-style-type: disc;">1</li></ul><ul style="margin: 0px 0px 1em 40px; padding: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><li style="margin: 0px; padding: 0px; list-style-type: disc;">1</li></ul><p style="margin-top: 10px; margin-bottom: 10px; padding: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">示例4-2-4 只能选择今天7:00:00至明天21:00:00的日期</p><pre name="code" style="margin-top: 0px; margin-bottom: 0px; padding: 0px; white-space: pre-wrap; word-wrap: break-word; color: #333333; background-color: #ffffff;"><code haskell=""  has-numbering"="" style="margin: 0px; padding: 0px;">&lt;input id=<span style="margin: 0px; padding: 0px; color: #a31515;">"d424" <span style="margin: 0px; padding: 0px; color: #0000ff;">class=<span style="margin: 0px; padding: 0px; color: #a31515;">"Wdate" <span style="margin: 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; color: #0000ff;">type="text" onfocus="<span style="margin: 0px; padding: 0px; color: #a31515;">WdatePicker<span style="margin: 0px; padding: 0px;">({<span style="margin: 0px; padding: 0px;">dateFmt:'<span style="margin: 0px; padding: 0px;">yyyy-<span style="margin: 0px; padding: 0px;">M-<span style="margin: 0px; padding: 0px;">d <span style="margin: 0px; padding: 0px;">H:<span style="margin: 0px; padding: 0px;">mm:<span style="margin: 0px; padding: 0px;">ss',<span style="margin: 0px; padding: 0px;">minDate:'%<span style="margin: 0px; padding: 0px;">y-%<span style="margin: 0px; padding: 0px;">M-%<span style="margin: 0px; padding: 0px;">d 7:00:00',<span style="margin: 0px; padding: 0px;">maxDate:'%<span style="margin: 0px; padding: 0px;">y-%<span style="margin: 0px; padding: 0px;">M-{%<span style="margin: 0px; padding: 0px;">d+1} 21:00:00'})"/&gt;</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></code></pre><ul style="margin: 0px 0px 1em 40px; padding: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><li style="margin: 0px; padding: 0px; list-style-type: disc;">1</li></ul><ul style="margin: 0px 0px 1em 40px; padding: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><li style="margin: 0px; padding: 0px; list-style-type: disc;">1</li></ul><p style="margin-top: 10px; margin-bottom: 10px; padding: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">示例4-2-5 使用了运算表达式 只能选择 20小时前 至 30小时后 的日期</p><pre name="code" style="margin-top: 0px; margin-bottom: 0px; padding: 0px; white-space: pre-wrap; word-wrap: break-word; color: #333333; background-color: #ffffff;"><code perl=""  has-numbering"="" style="margin: 0px; padding: 0px;">&lt;input id=<span style="margin: 0px; padding: 0px; color: #a31515;">"d425" class=<span style="margin: 0px; padding: 0px;">"Wdate" type=<span style="margin: 0px; padding: 0px;">"text" onClick=<span style="margin: 0px; padding: 0px;">"WdatePicker({dateFmt:'yyyy-MM-dd HH:mm',minDate:'<span style="margin: 0px; padding: 0px; color: green;">%y-<span style="margin: 0px; padding: 0px;">%M-<span style="margin: 0px; padding: 0px;">%d {<span style="margin: 0px; padding: 0px;">%H-20}:<span style="margin: 0px; padding: 0px;">%m:<span style="margin: 0px; padding: 0px;">%s',maxDate:'<span style="margin: 0px; padding: 0px;">%y-<span style="margin: 0px; padding: 0px;">%M-<span style="margin: 0px; padding: 0px;">%d {<span style="margin: 0px; padding: 0px;">%H+30}:<span style="margin: 0px; padding: 0px;">%m:<span style="margin: 0px; padding: 0px;">%s'})"/&gt;</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></code></pre><ul style="margin: 0px 0px 1em 40px; padding: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><li style="margin: 0px; padding: 0px; list-style-type: disc;">1</li></ul><ul style="margin: 0px 0px 1em 40px; padding: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"><li style="margin: 0px; padding: 0px; list-style-type: disc;">1</li></ul><p style="margin-top: 10px; margin-bottom: 10px; padding: 0px; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">暂时这这么多。</p><img src ="http://www.blogjava.net/coderMoon/aggbug/432557.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/coderMoon/" target="_blank">wen.ding</a> 2017-05-27 14:29 <a href="http://www.blogjava.net/coderMoon/articles/432557.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title> 【File】使用Spring CommonsMultipartResolver 上传文件【转】</title><link>http://www.blogjava.net/coderMoon/articles/432543.html</link><dc:creator>wen.ding</dc:creator><author>wen.ding</author><pubDate>Tue, 23 May 2017 03:34:00 GMT</pubDate><guid>http://www.blogjava.net/coderMoon/articles/432543.html</guid><wfw:comment>http://www.blogjava.net/coderMoon/comments/432543.html</wfw:comment><comments>http://www.blogjava.net/coderMoon/articles/432543.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/coderMoon/comments/commentRss/432543.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/coderMoon/services/trackbacks/432543.html</trackback:ping><description><![CDATA[<div style="background-color: #ffffff; color: #333333; font-family: Arial; line-height: 26px;"><a target="_blank" href="http://www.iteye.com/blogs/tag/Spring" style="text-decoration-line: none; color: #336699;">Spring</a><a target="_blank" href="http://www.iteye.com/blogs/tag/MVC" style="text-decoration-line: none; color: #336699;">MVC</a><a target="_blank" href="http://www.iteye.com/blogs/tag/Java" style="text-decoration-line: none; color: #336699;">Java</a><a target="_blank" href="http://www.iteye.com/blogs/tag/Struts" style="text-decoration-line: none; color: #336699;">Struts</a><a target="_blank" href="http://www.iteye.com/blogs/tag/JSP" style="text-decoration-line: none; color: #336699;">JSP</a>&nbsp;</div><div id="blog_content" style="background-color: #ffffff; color: #333333; font-family: Arial; line-height: 26px;">可以在controller(spring mvc)&nbsp; 或者 action (struts mvc)<br />中直接使用CommonsMultipartResolver&nbsp;&nbsp;<br /><div style="width: 700.906px; overflow-y: hidden; position: relative;">Java代码<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; ">&nbsp;1</span>&nbsp;<span style="color: #000000; "><img src="http://www.blogjava.net/Images/dot.gif"  alt="" />Controller<img src="http://www.blogjava.net/Images/dot.gif"  alt="" />{&nbsp;&nbsp;<br /></span><span style="color: #008080; ">&nbsp;2</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">&nbsp;3</span>&nbsp;<span style="color: #000000; "></span><span style="color: #008000; ">//</span><span style="color: #008000; ">创建一个通用的多部分解析器.&nbsp;&nbsp;</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">&nbsp;4</span>&nbsp;<span style="color: #008000; "></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;CommonsMultipartResolver&nbsp;commonsMultipartResolver&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">new</span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">&nbsp;5</span>&nbsp;<span style="color: #000000; ">CommonsMultipartResolver(request.getSession().getServletContext());&nbsp;&nbsp;<br /></span><span style="color: #008080; ">&nbsp;6</span>&nbsp;<span style="color: #000000; "></span><span style="color: #008000; ">//</span><span style="color: #008000; ">设置编码&nbsp;&nbsp;</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">&nbsp;7</span>&nbsp;<span style="color: #008000; "></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;commonsMultipartResolver.setDefaultEncoding(&#8221;utf</span><span style="color: #000000; ">-</span><span style="color: #000000; ">8</span><span style="color: #000000; ">&#8243;);&nbsp;&nbsp;<br /></span><span style="color: #008080; ">&nbsp;8</span>&nbsp;<span style="color: #000000; ">&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">判断&nbsp;request&nbsp;是否有文件上传,即多部分请求<img src="http://www.blogjava.net/Images/dot.gif"  alt="" />&nbsp;&nbsp;</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">&nbsp;9</span>&nbsp;<span style="color: #008000; "></span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(commonsMultipartResolver.isMultipart(request))&nbsp;&nbsp;<br /></span><span style="color: #008080; ">10</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;<br /></span><span style="color: #008080; ">11</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">转换成多部分request&nbsp;&nbsp;</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">12</span>&nbsp;<span style="color: #008000; "></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MultipartHttpServletRequest&nbsp;multipartRequest&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">13</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;commonsMultipartResolver.resolveMultipart(request);&nbsp;&nbsp;<br /></span><span style="color: #008080; ">14</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;<br /></span><span style="color: #008080; ">15</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;file&nbsp;是指&nbsp;文件上传标签的&nbsp;name=值&nbsp;&nbsp;<br /></span><span style="color: #008080; ">16</span>&nbsp;<span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;根据&nbsp;name&nbsp;获取上传的文件<img src="http://www.blogjava.net/Images/dot.gif"  alt="" />&nbsp;&nbsp;</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">17</span>&nbsp;<span style="color: #008000; "></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;MultipartFile&nbsp;file&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;multipartRequest.getFile(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">file</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);&nbsp;&nbsp;<br /></span><span style="color: #008080; ">18</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">19</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">上传后记录的文件<img src="http://www.blogjava.net/Images/dot.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">20</span>&nbsp;<span style="color: #008000; "></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;File&nbsp;imageFile&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">new</span><span style="color: #000000; ">&nbsp;File(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">fileName</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);&nbsp;&nbsp;<br /></span><span style="color: #008080; ">21</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">上传<img src="http://www.blogjava.net/Images/dot.gif"  alt="" />&nbsp;&nbsp;</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">22</span>&nbsp;<span style="color: #008000; "></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;file.transferTo(imageFile);&nbsp;&nbsp;<br /></span><span style="color: #008080; ">23</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;<br /></span><span style="color: #008080; ">24</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;<br /></span></div><span style="font-size: 13px; color: #008080;">25</span><span style="background-color: #eeeeee; font-size: 13px;">&nbsp;</span><span style="font-size: 13px; color: #000000;">&nbsp;&nbsp;} &nbsp;</span>&nbsp;<a target="_blank" title="复制代码" href="http://yanglei008.iteye.com/blog/246920#" style="background-position: left top; background-repeat: no-repeat; padding: 1px; display: inline-block; width: 16px; height: 16px; text-indent: -2000px;"><img alt="复制代码" src="http://yanglei008.iteye.com/images/icon_copy.gif" style="border: none; max-width: 100%;" /></a>&nbsp;<a target="_blank" title="收藏这段代码" href="http://blog.csdn.net/awangz/article/details/9471161" style="background-position: left top; background-repeat: no-repeat; padding: 1px; display: inline-block; width: 16px; height: 16px; text-indent: -2000px;"><img alt="收藏代码" src="http://yanglei008.iteye.com/images/icon_star.png" style="border: none; max-width: 100%;" /><img alt="" src="http://yanglei008.iteye.com/images/spinner.gif" style="border: none; max-width: 100%;" /><br /><br /></a></div><div bg_java"="" style="width: 700.906px; overflow-y: hidden; position: relative;"><div><div><strong>[java]</strong>&nbsp;<a target="_blank" href="http://blog.csdn.net/awangz/article/details/9471161#" title="view plain" style="background-image: url(&quot;images/default/ico_plain.gif&quot;); background-position: left top; background-repeat: no-repeat; padding: 1px; display: inline-block; width: 16px; height: 16px; text-indent: -2000px;">view plain</a>&nbsp;<a target="_blank" href="http://blog.csdn.net/awangz/article/details/9471161#" title="copy" style="background-image: url(&quot;images/default/ico_copy.gif&quot;); background-position: left top; background-repeat: no-repeat; padding: 1px; display: inline-block; width: 16px; height: 16px; text-indent: -2000px;">copy</a><div style="position: absolute; left: 476px; top: 1001px; width: 18px; height: 18px; z-index: 99;"></div><div style="position: absolute; left: 563px; top: 1115px; width: 18px; height: 18px; z-index: 99;"></div></div></div><ol start="1"><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;</li><li style="line-height: 18px;">...Controller...{&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</li><li style="line-height: 18px;">//创建一个通用的多部分解析器.&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;CommonsMultipartResolver&nbsp;commonsMultipartResolver&nbsp;=&nbsp;new&nbsp;&nbsp;&nbsp;</li><li style="line-height: 18px;">CommonsMultipartResolver(request.getSession().getServletContext());&nbsp;&nbsp;</li><li style="line-height: 18px;">//设置编码&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;commonsMultipartResolver.setDefaultEncoding(&#8221;utf-<span style="color: #c00000;">8</span>&#8243;);&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;//判断&nbsp;request&nbsp;是否有文件上传,即多部分请求...&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;if&nbsp;(commonsMultipartResolver.isMultipart(request))&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//转换成多部分request&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MultipartHttpServletRequest&nbsp;multipartRequest&nbsp;=&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;commonsMultipartResolver.resolveMultipart(request);&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;//&nbsp;file&nbsp;是指&nbsp;文件上传标签的&nbsp;name=值&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;根据&nbsp;name&nbsp;获取上传的文件...&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;MultipartFile&nbsp;file&nbsp;=&nbsp;multipartRequest.getFile("file");&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;//上传后记录的文件...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;File&nbsp;imageFile&nbsp;=&nbsp;new&nbsp;File("fileName");&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;//上传...&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;file.transferTo(imageFile);&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;}&nbsp;&nbsp;</li></ol></div><br /><br />也可以在spring配置文件中配置&nbsp;<br /><div style="width: 700.906px; overflow-y: hidden; position: relative;"><div><div>Java代码&nbsp;<a target="_blank" title="复制代码" href="http://yanglei008.iteye.com/blog/246920#" style="background-position: left top; background-repeat: no-repeat; padding: 1px; display: inline-block; width: 16px; height: 16px; text-indent: -2000px;"><img alt="复制代码" src="http://yanglei008.iteye.com/images/icon_copy.gif" style="border: none; max-width: 100%;" /></a>&nbsp;<a target="_blank" title="收藏这段代码" href="http://blog.csdn.net/awangz/article/details/9471161" style="background-position: left top; background-repeat: no-repeat; padding: 1px; display: inline-block; width: 16px; height: 16px; text-indent: -2000px;"><img alt="收藏代码" src="http://yanglei008.iteye.com/images/icon_star.png" style="border: none; max-width: 100%;" /><img alt="" src="http://yanglei008.iteye.com/images/spinner.gif" style="border: none; max-width: 100%;" /></a></div></div><ol><li style="line-height: 18px;">也可以在Spring的配置文件中添加&nbsp;&nbsp;</li><li style="line-height: 18px;">Xml代码&nbsp;&nbsp;</li><li style="line-height: 18px;">&lt;bean&nbsp;id=&#8221;multipartResolver&#8221;&nbsp;class=&#8221;org.springframework.web.multipart.commons.CommonsMultipartResolver&#8221;&gt;&nbsp;&nbsp;</li><li style="line-height: 18px;">&lt;property&nbsp;name=&#8221;defaultEncoding&#8221;&nbsp;value=&#8221;UTF-<span style="color: #c00000;">8</span>&#8243;&nbsp;/&gt;&nbsp;&nbsp;</li><li style="line-height: 18px;">&lt;/bean&gt;&nbsp;&nbsp;&nbsp;</li></ol></div><div bg_java"="" style="width: 700.906px; overflow-y: hidden; position: relative;"><div><div><strong>[java]</strong>&nbsp;<a target="_blank" href="http://blog.csdn.net/awangz/article/details/9471161#" title="view plain" style="background-image: url(&quot;images/default/ico_plain.gif&quot;); background-position: left top; background-repeat: no-repeat; padding: 1px; display: inline-block; width: 16px; height: 16px; text-indent: -2000px;">view plain</a>&nbsp;<a target="_blank" href="http://blog.csdn.net/awangz/article/details/9471161#" title="copy" style="background-image: url(&quot;images/default/ico_copy.gif&quot;); background-position: left top; background-repeat: no-repeat; padding: 1px; display: inline-block; width: 16px; height: 16px; text-indent: -2000px;">copy</a><div style="position: absolute; left: 476px; top: 1774px; width: 18px; height: 18px; z-index: 99;"></div><div style="position: absolute; left: 563px; top: 1890px; width: 18px; height: 18px; z-index: 99;"></div></div></div><ol start="1"><li style="line-height: 18px;">也可以在Spring的配置文件中添加&nbsp;&nbsp;</li><li style="line-height: 18px;">Xml代码&nbsp;&nbsp;</li><li style="line-height: 18px;">&lt;bean&nbsp;id=&#8221;multipartResolver&#8221;&nbsp;class=&#8221;org.springframework.web.multipart.commons.CommonsMultipartResolver&#8221;&gt;&nbsp;&nbsp;</li><li style="line-height: 18px;">&lt;property&nbsp;name=&#8221;defaultEncoding&#8221;&nbsp;value=&#8221;UTF-<span style="color: #c00000;">8</span>&#8243;&nbsp;/&gt;&nbsp;&nbsp;</li><li style="line-height: 18px;">&lt;/bean&gt;&nbsp;&nbsp;&nbsp;</li></ol></div><br /><br /><br />jsp code&nbsp;<br /><div style="width: 700.906px; overflow-y: hidden; position: relative;"><div><div>Java代码&nbsp;<a target="_blank" title="复制代码" href="http://yanglei008.iteye.com/blog/246920#" style="background-position: left top; background-repeat: no-repeat; padding: 1px; display: inline-block; width: 16px; height: 16px; text-indent: -2000px;"><img alt="复制代码" src="http://yanglei008.iteye.com/images/icon_copy.gif" style="border: none; max-width: 100%;" /></a>&nbsp;<a target="_blank" title="收藏这段代码" href="http://blog.csdn.net/awangz/article/details/9471161" style="background-position: left top; background-repeat: no-repeat; padding: 1px; display: inline-block; width: 16px; height: 16px; text-indent: -2000px;"><img alt="收藏代码" src="http://yanglei008.iteye.com/images/icon_star.png" style="border: none; max-width: 100%;" /><img alt="" src="http://yanglei008.iteye.com/images/spinner.gif" style="border: none; max-width: 100%;" /></a></div></div><ol><li style="line-height: 18px;">&lt;form&nbsp;id=&#8221;fileUploadForm&#8221;&nbsp;method=&#8221;post&#8221;&nbsp;action=&#8221;XXX.do?method=fileUpload&#8221;&nbsp;enctype=&#8221;multipart/form-data&#8221;&gt;&nbsp;&nbsp;</li><li style="line-height: 18px;">&lt;tr&gt;&nbsp;&nbsp;</li><li style="line-height: 18px;">&lt;td&gt;File:&lt;/td&gt;&nbsp;&nbsp;</li><li style="line-height: 18px;">&lt;td&gt;&lt;input&nbsp;type=&#8221;file&#8221;&nbsp;name=&#8221;file&#8221;&gt;&lt;/td&gt;&nbsp;&nbsp;</li><li style="line-height: 18px;">&lt;/tr&gt;&nbsp;&nbsp;</li><li style="line-height: 18px;">&lt;tr&gt;&nbsp;&nbsp;</li><li style="line-height: 18px;">&lt;td&gt;&lt;input&nbsp;type=&#8221;hidden&#8221;&nbsp;name=&#8221;fileOwner&#8221;&nbsp;value=&#8221;<span style="color: #c00000;">1002</span>&#8243;/&gt;&lt;/td&gt;&nbsp;&nbsp;</li><li style="line-height: 18px;">&lt;td&gt;&lt;input&nbsp;type=&#8221;submit&#8221;&nbsp;value=&#8221;submit&#8221;&gt;&lt;/td&gt;&nbsp;&nbsp;</li><li style="line-height: 18px;">&lt;/tr&gt;&nbsp;&nbsp;</li><li style="line-height: 18px;">&lt;/form&gt;&nbsp;&nbsp;</li></ol></div></div><p style="margin: 0px; padding: 0px; background-color: #ffffff; color: #333333; font-family: Arial; line-height: 26px;">&nbsp;</p><p style="margin: 0px; padding: 0px; background-color: #ffffff; color: #333333; font-family: Arial; line-height: 26px;">==========================分割线==================================================================</p><p style="margin: 0px; padding: 0px; background-color: #ffffff; color: #333333; font-family: Arial; line-height: 26px;">另外一篇，也是关于<a target="_blank" href="http://lib.csdn.net/base/17" title="Java EE知识库" style="text-decoration-line: none; color: #df3434; font-weight: bold;">spring</a>&nbsp;MVC上传文件的，也放到这里吧</p><p style="margin: 0px; padding: 0px; background-color: #ffffff; color: #333333; font-family: Arial; line-height: 26px;">转载自：&nbsp;<a target="_blank" href="http://mn960mn.blog.163.com/blog/static/11410308420109493440818/" style="text-decoration-line: none; color: #336699;">http://mn960mn.blog.163.com/blog/static/11410308420109493440818/</a></p><div style="background-color: #ffffff; color: #333333; font-family: Arial; line-height: 26px;"><div><h3><span style="font-family: 微软雅黑; font-size: 24px;">spring mvc 上传文件（注解）</span>&nbsp;&nbsp;</h3><p clearfix="" nbw-act=""  fc06"="" style="margin: 0px; padding: 0px; line-height: 20px;">2010-10-04 09:34:40|&nbsp;&nbsp;分类：&nbsp;<a target="_blank" title="spring"  m2a"="" href="http://mn960mn.blog.163.com/blog/#m=0&amp;t=1&amp;c=fks_084066085080082075084080085095085087085066084085086075080" style="text-decoration-line: none; color: #336699;">spring</a>&nbsp;<span id="$_blogTagTitle">|&nbsp;&nbsp;标签：</span><span id="$_blogTagInfo"><a target="_blank"  m2a"="" href="http://mn960mn.blog.163.com/blog/#m=0&amp;t=3&amp;c=上传文件" style="text-decoration-line: none; color: #336699;">上传文件</a>&nbsp;&nbsp;<a target="_blank"  m2a"="" href="http://mn960mn.blog.163.com/blog/#m=0&amp;t=3&amp;c=spring" style="text-decoration-line: none; color: #336699;">spring</a>&nbsp;&nbsp;<a target="_blank"  m2a"="" href="http://mn960mn.blog.163.com/blog/#m=0&amp;t=3&amp;c=mvc" style="text-decoration-line: none; color: #336699;">mvc</a>&nbsp;&nbsp;</span>&nbsp;<span fc07=""  ztag"="">|<span fc03"="" id="$_fontswitch">字号<span phide"="" id="$_fontsTypes"><span bdc0"=""><span stag"="">大</span><span stag="" selected="" js-fcurrent=""  fc05"="">中</span><span stag"="">小</span></span></span></span></span><span pnt=""  fc03"="" id="$_blog_subscribe">&nbsp;<a target="_blank" style="color: #336699;">订阅</a></span></p></div></div><div style="background-color: #ffffff; color: #333333; font-family: Arial; line-height: 26px;"></div><div style="background-color: #ffffff; color: #333333; font-family: Arial; line-height: 26px;"></div><div fc05="" fc11="" nbw-blog="" ztag=""  js-fs2"="" style="background-color: #ffffff; color: #333333; font-family: Arial; line-height: 26px;">package net.hqit.action;<br /><br />import java.io.File;<br />import java.io.IOException;<br /><br />import javax.servlet.http.HttpServletRequest;<br /><br />import org.springframework.stereotype.Controller;<br />import org.springframework.util.FileCopyUtils;<br />import org.springframework.web.bind.annotation.RequestMapping;<br />import org.springframework.web.bind.annotation.RequestMethod;<br />import org.springframework.web.bind.annotation.RequestParam;<br />import org.springframework.web.multipart.MultipartFile;<br /><br />@Controller<br />public class FileUploadController {<br /><br />&nbsp;&nbsp; &nbsp;@RequestMapping(value="/upload.do",method=RequestMethod.POST)<br />&nbsp;&nbsp; &nbsp;public String upload(@RequestParam("imageFile") MultipartFile image,HttpServletRequest request) throws IOException<br />&nbsp;&nbsp; &nbsp;{<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;String path = request.getRealPath("/upload");<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;request.setAttribute("name",image.getOriginalFilename());<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;request.setAttribute("img","&lt;img src='http://mn960mn.blog.163.com/blog/upload/"+image.getOriginalFilename()+"'&gt;&lt;/img&gt;");<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;FileCopyUtils.copy(image.getBytes(),new File(path+"/"+image.getOriginalFilename()));&nbsp;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;return "ok";<br />&nbsp;&nbsp; &nbsp;}<br />}<br /><br /><br />spring-servlet.xml<br /><br />&lt;?xml version="1.0" encoding="UTF-8"?&gt;<br />&lt;beans xmlns="http://www.springframework.org/schema/beans"&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&nbsp;<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; xmlns:p="http://www.springframework.org/schema/p"&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlns:context="http://www.springframework.org/schema/context"&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xsi:schemaLocation="http://www.springframework.org/schema/beans&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; http://www.springframework.org/schema/beans/spring-beans-3.0.xsd&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; http://www.springframework.org/schema/context&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; http://www.springframework.org/schema/context/spring-context-3.0.xsd"&gt;&nbsp;<br /><br />&nbsp;&nbsp;&nbsp; &nbsp;&lt;context:component-scan base-package="net.hqit.action"/&gt;<br />&nbsp;&nbsp;&nbsp; &lt;bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" /&gt;<br /><br />&nbsp;&nbsp;&nbsp; &nbsp;&lt;bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"&gt;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/&gt;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="prefix" value="/WEB-INF/view/"/&gt;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="suffix" value=".jsp"/&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp; &lt;/bean&gt;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp; &lt;bean id="multipartResolver"&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; class="org.springframework.web.multipart.commons.CommonsMultipartResolver"&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; p:defaultEncoding="utf-8" /&gt;&nbsp;&nbsp;<br /><br />&lt;/beans&gt;<br /><br />别忘了加入commons里的fileupload跟io两个ＪＡＲ包，这样就可以了。</div><img src ="http://www.blogjava.net/coderMoon/aggbug/432543.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/coderMoon/" target="_blank">wen.ding</a> 2017-05-23 11:34 <a href="http://www.blogjava.net/coderMoon/articles/432543.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>