- 浏览: 199971 次
- 性别:
- 来自: 河北
最新评论
-
沉默表明一切1:
楼主想问一下,怎样才能在浏览器看到这个store的内容,var ...
operamasks-ui之omGrid简单使用 -
asd001oo:
非常感谢 解决了我的问题
EasyUI-combobox-监听onblur事件 -
han0917:
mamacmm 写道你看一下xblink源码吧,它提供的方法好 ...
使用XBlink操作XML -
mamacmm:
你看一下xblink源码吧,它提供的方法好像没有这样的功能
使用XBlink操作XML -
han0917:
我想问下我使用XBlink序列化对象为xml的时候,对某字段A ...
使用XBlink操作XML
【阅读本文前提】
您了解Nutz框架(刚刚接触Nutz,对此还不熟悉),想要使用Nutz的文件池和上传功能;
想实现一个上传文件或者图片的功能。
【正文】
1.怎么在项目中使用Nutz框架,这里就不说了,具体可查看:
http://code.google.com/p/nutz/wiki/nutz_preface?tm=6
2.前台
上传图片(我这里是实现的上传图片的功能)的前台页面代码:
<form name="addphotoForm" action="addPhoto.action" method="post" onsubmit="return validateForm(this)" enctype="multipart/form-data"> <input type="hidden" name="albumId" value="${obj}"> <table class="default" width="100%"> <tr class="title"> <td colspan="2">填写相片信息</td> </tr> <tr> <td class="item"><@m.mustMark/>相片名称</td> <td><input type="text" name="photoName" emptyInfo="请输入相片名称。" size="50" maxLen="50" lengthInfo="相片名称最大长度不能超过50字符。"></td> </tr> <tr> <td class="item">相片描述</td> <td><textarea name="description" size="50" maxLen="300" lengthInfo="相片描述最大长度不能超过300字符。" rows="5" cols="51"></textarea></td> </tr> <tr> <td class="item"><@m.mustMark/>上传相片</td> <td ><input type="file" name="photoFile" size="50" emptyInfo="请选择要上传的资源文件!"></td> </tr> <tr> <td></td> <td> <input type="submit" name="submit" value="确定" class="btn"> <input type="reset" name="reset" value="重置" class="btn"> </td> </tr> </table> </form>
注意:
上传页面的表单,action="addPhoto.action",这里的 addPhoto.action 的后缀是什么无所谓(原因查看Nutz框架的文档),addPhoto 是上传图片的入口函数。
enctype="multipart/form-data" ,这个必须要写的,不解释。
3.配置文件
为了实现上传图片的功能,我使用了Nutz自带的上传适配器:UploadAdaptor,使用了ioc的方式(怎么配置ioc,这里就不说了),具体配置文件如下:
ioc文件夹下,添加一个名称为 myUpload.js 的文件(名称无所谓,随便起),里面的内容如下:
var myUploadIoc = { utils : { type : 'com.mm.util.MyUtils', fields : { sc : {app:'$servlet'} // 将 ServletContext 对象注入 MyUtils } }, tmpFilePool : { type : 'org.nutz.filepool.NutFilePool', // 临时文件最大个数为 1000 个 args : [ {java:'$utils.getPath("/tmp")'}, 1000 ] }, uploadPicFileContext : { type : 'org.nutz.mvc.upload.UploadingContext', singleton : false, args : [ { refer : 'tmpFilePool' } ], fields : { // 是否忽略空文件, 默认为 false ignoreNull : true, // 单个文件最大尺寸(大约的值,单位为字节,即 1048576 为 1M) maxFileSize : 1048576, // 正则表达式匹配可以支持的文件名 nameFilter : '^(.+[.])(gif|jpg|png)$' } }, myPicUpload : { type : 'org.nutz.mvc.upload.UploadAdaptor', singleton : false, args : [ { refer : 'uploadPicFileContext' } ] } };
注意:
com.mm.util.MyUtils 是自己定义的一个工具类,为了得到上传地址,内容如下:
package com.mm.util; import javax.servlet.ServletContext; /** * 用于上传ioc : myUpload.js * */ public class MyUtils { private ServletContext sc; public String getPath(String path) { return sc.getRealPath(path); } }
tmpFilePool 是Nutz的文件池;
java:'$utils.getPath("/tmp")' 这个是指明了上传的图片的地址是:项目根目录下的tmp目录下;
gif|jpg|png 限制了上传文件的格式。
4.后台代码
其实就是上传模块的入口函数代码:
/** * 添加照片 * @param albumId 相册ID * @param req */ @At("/photo/pho/addPhoto") @Ok("fm:/common/execute_result.ftl") @AdaptBy(type = UploadAdaptor.class, args = { "ioc:myPicUpload" }) public void addPhoto(@Param("..")NutMap nm,HttpServletRequest req){ //log.info("NutMap:"+nm); TempFile tf = (TempFile)nm.get("photoFile"); File f = tf.getFile(); //FieldMeta meta = tf.getMeta(); //String oldName = meta.getFileLocalName(); //log.info("文件绝对路径:"+f.getAbsolutePath()+",原来的名称:"+oldName); String str = f.getPath(); int one = str.indexOf(Constants.UPLOAD_FILE_DIRECTORY_NAME); str = str.substring(one); //log.info("文件的相对路径:"+str); long albumId = (long)nm.getInt("albumId"); String photoName = (String)nm.get("photoName"); String description = (String)nm.get("description"); Photo photo = new Photo(); photo.setAlbumId(albumId); photo.setPhotoName(photoName); photo.setDescription(description); photo.setCreateDate(TimeUtil.getNowTime("yyyy-MM-dd")); // photo.setPhotoUrl(f.getAbsolutePath()); photo.setPhotoUrl(str); getServiceManager().getPhotoService().insert(photo); setExecuteResult(null); addMessage("添加照片成功!"); addRedirURL("返回", "@back"); addRedirURL("照片列表", "photoList.html?albumId="+String.valueOf(albumId)); req.setAttribute(EXECUTE_RESULT, getExecuteResult()); }
注意:
上传表单的内容全部用 NutMap 来接收了;
@AdaptBy(type = UploadAdaptor.class, args = { "ioc:myPicUpload" }) ,这句是关键配置,注意myPicUpload要和ioc里面的相对应;
注意使用相对路径,否则会出现意想不到的问题(就是在使用本地路径访问项目的时候,上传的照片可以显示,使用实际路径访问项目的时候就不能显示上传的照片了)。
Constants.UPLOAD_FILE_DIRECTORY_NAME ,这个是一个字符串 tmp ,这个一定要和ioc里面配置的路径一致,原因不解释。
解释到这里,我想大家应该明白了吧(有什么写的不好的地方,欢迎指教)。
发表评论
-
activiti注释Annotation生成图片后乱码问题解决
2016-04-18 18:49 1301activiti的版本:5.15.1 直接看图: ... -
EasyUI-combobox-监听onblur事件
2014-04-17 17:41 4040$("#id").combobox(). ... -
EasyUI-datagrid-自动合并单元格
2014-03-28 09:43 128431.目标 1.1表格初始化完成后,已经自动合并好需要 ... -
FATAL ERROR in native method: JDWP No transports initialized
2012-12-07 14:27 14262今天在启动MyEclipse里面配置的Tomcat的时候(DE ... -
operamasks-ui之omGrid简单使用
2012-06-19 22:40 190741.背景 1)本文只是简单记录下怎么使用operamasks ... -
使用SpringMVC(spring3.0)自带的json
2012-03-13 17:22 80541.下载spring相关jar 去哪里下载就不说了 要想支 ... -
使用XBlink操作XML
2012-01-14 12:49 29961.为什么使用XBlink? 两个项目进行交互, ... -
Axis2简单入门
2011-07-22 23:23 44631.到Apache官网下载Axis2 给你地址:htt ... -
使用Nutz的json视图实现前台密码验证
2011-04-20 12:32 1561使用Nutz的json视图实现前台密码验证 【阅 ... -
能说明你的Javascript技术很烂的五个原因(转)
2011-04-13 12:40 1219Javascript在互联网上名声很臭,但你又很难再找到一个像 ... -
如何在android模拟器中安装和卸载APK包
2011-03-14 16:27 2410【安装APK】 安装前最好先把模拟器打开。下面举例说明 ... -
Android学习笔记
2011-03-02 21:38 1450Android学习笔记 1.改变AVD地址 ... -
oracle-学习笔记-5
2010-12-17 10:43 1882接 oracle-学习笔记-4 --- ... -
oracle-学习笔记-4
2010-12-17 10:42 1867接 oracle-学习笔记-3 ------------- ... -
oracle-学习笔记-3
2010-12-17 10:40 1332接 oracle-学习笔记-2 -------------- ... -
oracle-学习笔记-2
2010-12-17 10:39 1219接 oracle-学习笔记-1 ------------- ... -
oracle-学习笔记-1
2010-12-17 10:37 1513本文如同题目,只是学习笔记 1.1查看控制文件 SQL> ... -
Weblogic8.1 SSL的配置
2010-07-08 14:53 1372Weblogic SSL的配置 1) 先进入域所在的地 ... -
机试笔试面试题
2009-12-12 11:35 2517机试笔试面试题(主要是Java,其次是ASP.net,C#,O ... -
ExtJs资料
2009-11-27 18:04 2380从网上找了一些和ExtJs有关的资料,有需要的就下载吧! ...
相关推荐
Nutz 是一个轻量级、高性能的 Java 开发框架,它提供了一系列方便实用的工具和组件,其中包括处理文件上传的功能。 在 Nutz 中,文件上传主要通过 `NutzHttp` 或 `Ioc` 容器中的 `nutz.plugin.multiupload` 插件来...
这篇博客"ztree与nutz简单使用"似乎探讨了如何结合这两个工具来提升文件操作的效率和便捷性。 首先,ZTree的核心在于它的树形结构展示方式,这种结构清晰直观,特别适合展示层次分明的目录系统。用户可以通过点击...
5. **实战示例**:手册可能包含多个实际开发案例,如CRUD操作、表单验证、文件上传下载、AJAX交互等,帮助读者通过实践更好地理解和掌握Nutz框架的使用。 6. **性能优化**:对于大型项目,性能优化至关重要。手册...
"示例,我们已经了解了如何在Nutz MVC框架下使用NetBeans和jQuery创建一个基本的Web应用。Nutz提供了很多其他功能,如ORM支持、AOP切面编程、强大的I/O工具等,使得开发者能够更加高效地构建复杂的应用。继续深入...
此外,Nutz.mvc还提供了权限检查、文件上传和下载等Web应用常用的功能。 Nutz框架的大小仅为325K,这相较于其他成熟的框架如Hibernate、SpringCore、Struts等,显得非常小巧。作者在开发Nutz时,对于现有的流行框架...
3. **Mvc模块**:支持注解式的控制器配置,内置了多文件上传功能,简化了前端与后端之间的交互。同时,该模块还提供了视图渲染的支持,能够方便地处理HTTP请求与响应。 4. **Json模块**:用于JSON数据的解析和渲染...
Mvc模块则采用注解风格的配置,内置了多文件上传功能,使Web层的开发更加直观。Json模块为JSON数据的解析和渲染提供了解决方案。Castors模块负责Java对象之间的类型转换,而Lang模块提供了更为简洁的函数式编程接口...
Mvc -- 注解风格的配置,内置多文件上传功能 Json -- 解析和渲染 Castors -- Java 对象类型转换 Lang -- 更简洁的 Java 函数以及更丰富的反射支持 Aop -- 轻便快速的切面编程支持 Plugin -- 轻便的插件机制 Resource...
Nutz.Mvc提供注解风格的配置,支持多文件上传功能,简化了Web应用的开发流程。开发者可以通过注解来配置控制器、方法及参数,实现路由、视图渲染等功能。 **Json处理**: Nutz.Json模块负责JSON的解析和渲染,方便...
Nutz.Mvc则采用了注解风格的配置和内置的多文件上传功能,大大简化了控制器层面的代码编写。Nutz.Json则提供了JSON的解析和渲染功能,旨在简化数据的转换过程。 Nutz框架的设计理念是通过提供轻量级、可独立使用的...
- Mvc:采用注解风格配置,支持内置多文件上传功能。 - Json:具备JSON解析和渲染能力。 - Castors:提供Java对象类型转换。 - Lang:通过更简洁的Java函数和丰富的反射支持,简化代码。 - Aop:实现轻便快速的...
SpringMVC还支持国际化、主题和数据验证,以及文件上传和下载功能。 **Nutz** Nutz是一个高度灵活的框架,它的设计目标是简化Java开发,提高开发效率。Nutz的ORM模块可以方便地与数据库交互,而DAO模块提供了动态...
4. **Web组件**:Nutz提供了HTTP请求处理、session管理、文件上传下载等Web开发常见功能的实现。通过Nutz,开发者可以快速搭建起一个完整的Web应用。 5. **JSON处理**:Nutz内置了JSON解析和生成的功能,使得Java...
3. **MVC (Model-View-Controller)**:采用注解风格的配置方式,内置了多文件上传功能,使得控制器的编写更加简洁。 4. **JSON处理**:提供JSON数据的解析和渲染功能,极大地简化了前后端数据交互的过程。 5. **...
# 基于NutZ框架的权限管理系统 ## 项目简介 基于NutZ框架的权限管理系统是一个使用Apache Shiro进行权限管理的Web应用程序。该系统主要用于管理用户权限... 文件上传、下载 分页查询 ## 安装使用步骤 ### 环境配置
文章还提及了数据库连接使用了nutz框架,并在ioc配置文件中进行了指定。此外,平台还实现了电子图片的保存功能,虽然具体内容并未详细展开。 整体来看,文章阐述了一个完整的数据监控与管理平台技术实现方案,涉及...
通过使用Nutz框架的JAVA程序来实现,包括自动统计入库、缺测报告、查询、申报、审核、信息清除以及质量报告生成等功能。具体到技术实现,该模块包括以下几个关键应用点: 1. 缺测信息入库:通过Quartz框架实现的...