`
xzj127
  • 浏览: 16002 次
  • 性别: Icon_minigender_1
  • 来自: 帝都火星村
社区版块
存档分类
最新评论

Ext2.0 文件上传 Struts

    博客分类:
  • Ext
阅读更多
在Ext中文件上传技术总结.
使用Struts自带上传组件上传.需要commons-fileupload.jar 包,在后台文件中还需要
JsonOutUpload.java 文件(这个文件代码在下面给出).

前台:
var file=new Ext.form.TextField ({
fieldLabel : "附件名",
allowBlank : true,        //是否允许为空
inputType: 'file',
width:200,
decimalPrecision:2,
name : "file"
});


在 FormPanel 中 加入
frame : true,
fileUpload: true,
这两个属性..

这就是前台注意的...

后台:
在Struts Form中..
Private FormFile  file;
..getFile()
..setFile(FormFile file).

在Struts Action中..
CircsFeedbackForm circsFeedbackForm = (CircsFeedbackForm) form;
TCircsfeedback feedback=new TCircsfeedback();
FormFile file=circsFeedbackForm.getFile();
UploadFile.upload( file,this.getServlet().getServletContext().getRealPath("/upload"));
gvvList.getList().add(feedback);
gvvList.setSuccess(true);
JsonOutUpload.outJson(gvvList,response);
注意:这里一定要注意的是这个JsonOutUpload.outJson()..
如果你不用这个。用普通的JsonOut.outJson()..试试..看会出现什么结果..
这个UploadFile是一个上传文件所用到的类(自己写的.)
源代码:

public class UploadFile {
public static String saveFileSrc="";

/**
* 上传
*
* @param file
* @param serviceSrc
*/
public static void upload(FormFile file, String serviceSrc) {
InputStream is = null;
OutputStream os = null;
//给文件重新命名
saveFileSrc=serviceSrc+"/"+fileName(file.getFileName());
//从上传文件对象中得到一个输入流
try {
is = file.getInputStream();
os = new FileOutputStream(saveFileSrc);
byte[] buffer = new byte[8192];

int count = 0;

while((count = is.read(buffer, 0, 8192)) != -1){//读
         os.write(buffer, 0, count); //写
    }
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally{
if(os != null){
try {
os.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(is != null){
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}

/**
* 删除文件
*
* @param imageSrc
*/
public static void deleteFile(String fileSrc) {
try {
File file = new File(fileSrc);
file.delete();
} catch (Exception ex) {
ex.printStackTrace();
}
}

/**
* 给上传文件重新命令
*
* @return String
*/
public static String newFileName() {
return new Date().getTime() + "";
}

/**
* 获得文件类型
*
* @param fileSrc
* @return String
*/
public static String getFileType(String fileSrc) {
return fileSrc.substring(fileSrc.lastIndexOf("."), fileSrc.length());
}

/**
* 文件名
*
* @param fileSrc
* @return String
*/
public static String fileName(String fileSrc) {
return newFileName() + getFileType(fileSrc);
}
}


上面说的JsonOutUpload.java文件
源代码:
public class JsonOutUpload {
//文件上传的时候  response.setContentType("text/html"); 加这个可以让他不包装json数据
public static void outJsonString(String str,HttpServletResponse response) {
response.setContentType("text/javascript;charset=UTF-8");
response.setContentType("text/html");
outString(str,response);
}
public static void outJson(Object obj,HttpServletResponse response) {
outJsonString(JSONObject.fromObject(obj).toString(),response);
}

public static void outJsonArray(Object array,HttpServletResponse response) {
outString(JSONArray.fromObject(array).toString(),response);
}

public static void outString(String str,HttpServletResponse response) {
try {
PrintWriter out = response.getWriter();
out.write(str);
out.close();
} catch (IOException e) {
}
}
public static void outXMLString(String xmlStr,HttpServletResponse response) {
response.setContentType("application/xml;charset=UTF-8");
outString(xmlStr,response);
}

}

3
2
分享到:
评论

相关推荐

    Ext+Struts2多文件上传

    在本文中,我们将深入探讨如何使用ExtJS(Ext)与Struts2.0框架整合,实现多文件上传功能。这是一个常见的需求,在Web应用中,用户可能需要上传多个文件,如图片、文档等。通过理解这一过程,开发者可以构建更强大、...

    使用ExtJs的插件UploadDialog+struts2.0实现多文件上传

    在本文中,我们将深入探讨如何使用ExtJS的UploadDialog插件与Struts2.0框架相结合,实现一个功能完备的多文件上传功能。这是一项在Web应用开发中常见的需求,对于用户交互性和数据管理有着重要作用。 首先,让我们...

    运用Struts2.0+Spring+Hibernate+Ext做的上传技术(JS高手制作)

    总结来说,这个开源项目展示了如何综合运用Struts2.0、Spring、Hibernate和Ext来实现一个美观且功能完善的文件上传系统。通过学习这个项目,开发者可以深入理解这四个技术在实际项目中的应用,提升自己的Java Web...

    struts2.0上传下载实例

    本实例重点讲解Struts2.0中的文件上传和下载功能,这对于任何处理用户数据交互的Web应用都是必不可少的特性。 在Struts2中,文件上传是通过`struts2-core.jar`、`commons-fileupload.jar`和`commons-io.jar`等库来...

    struts_ext_upload4文件上传

    Struts2.0 + Ext 实现的文件上传功能是一种常见的Web开发技术,它结合了Struts2框架的控制器层和Ext JavaScript库的前端组件。在Java Web应用中,文件上传通常用于用户向服务器提交文件,如图片、文档等。下面我们将...

    ext + struts2 例子

    本文将详细介绍EXT与Struts2的结合使用,并通过标题和描述中的关键词,如“树”、“gridpanel”、“分页”、“文件上传”和“tabpanel”,深入探讨这些组件的应用。 EXT是一个强大的JavaScript库,它提供了丰富的...

    搭建EXTJS和STRUTS2框架(ext和struts2简单实例)

    - `<constant name="struts.multipart.maxSize" value="1000000000"/>`:设置文件上传的最大大小为1GB。 - `<package name="teaweb" extends="json-default" namespace="/">`:定义了一个名为`teaweb`的包,并继承...

    (2.0版本)自己写的struts2+hibernate+spring实例

    所以没有上传导入的jar,其实就是默认的struts2和hibernate以及spring的包.该项目使用的jar包为以下. spring-beans.jar xwork-2.0.4.jar spring-context.jar ognl-2.6.11.jar spring-web.jar ...

    在线操作系统 WEBOS

    在开发 WEBOS 时,我们使用 Struts2+Spring+Hibernate 架构设计,使用 ext 2.0 、Struts2+Spring+Hibernate 等开发平台。实验步骤包括安装 Windows XP 、MyEclipse6.5、mysql5.1 等。 WEBOS 的技术架构主要包括...

    Struts2,Spring,MySql,正则表达式等各类API帮助文档

    它通过拦截器模式实现了业务逻辑和表现层的分离,提供了丰富的插件和拦截器库,使得开发者能够更加便捷地处理表单提交、文件上传、异常处理等常见任务。Struts2的Action类和Result类型是其核心概念,Action负责接收...

    java文集

    Java 6 RowSet 使用完全剖析 结合Spring2.0和ActiveMQ进行异步消息调用 struts+hibernate增删改查(一) AXIS 布署问题 struts+hibernate增删改查(二) MySQL中如何实现Top N及M至N段的记录查询?...

    最新人事系统技术架构

    - Struts 2.0:作为后端框架之一,提供了简洁的MVC架构支持,易于实现业务逻辑与展示层的分离。 - Spring 3.0:负责管理整个系统的依赖注入以及事务管理等,确保系统的健壮性和可维护性。 - **数据库**:使用MSSQL...

Global site tag (gtag.js) - Google Analytics