`
javaEEdevelop
  • 浏览: 876278 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

jquery ajax--struts2上传图片

 
阅读更多

 

//这是html标签

<form action="address/fileUpload.do" id="form2" name="form2" encType="multipart/form-data"  method="post" target="hidden_frame_1" >  

    <input type="file" id="myFile" name="myFile" style="width:450px">  

    <input type="text" id="fileName" name="fileName" /> 

    <INPUT type="submit" value="上传文件"><span id="msg"></span>  

    <br>   

    <font color="red">支持JPG,JPEG,GIF,BMP,SWF,RMVB,RM,AVI文件的上传</font>              

    <iframe name='hidden_frame_1' id="hidden_frame_1" style='display:none' ></br></iframe>  

</form> 

 

//以下是struts2标签

<s:form target="ifr_up" id="uploadImageForm" name="uploadImageForm" enctype="multipart/form-data" method="post" action="/address/fileUpload.do" >

<input type="file" name="myFile" id="myFile" style="outline: medium none; width: 75px; height: 25px; visibility: visible; " hidefoucs="true" 

 onchange="uploadImage()" />

</s:form>

 

<iframe id="ifr_up" name="ifr_up" style="display: none;"></iframe>

 

js

/**

 * 回调函数

 */

function callback(data){

 

if(data.msg=="true"){

alert("发布成功");

}else{

alert("发布失败");

}

}

//后台

//action

private File myFile; //对应form表单的file name的名字myFile

private String fileName; //对应form表单的file name的名字fileName,这一部是为什么呢,因为myFile传过去的是一个以.tmp结尾的文件,是一个临时的,所以到时获取不到文件的后缀了,所以弄一个隐藏域文件框带到后台来获取文件的名字

 

 

public File getMyFile() {

return myFile;

}

 

public void setMyFile(File myFile) {

this.myFile = myFile;

}

 

 

public String getFileName() {

return fileName;

}

 

public void setFileName(String fileName) {

this.fileName = fileName;

}

 

 

public String fileUpload() throws Exception {

log.info("开始上传图标........");

  HttpServletRequest  request  = ServletActionContext.getRequest();   //请求的值

 String filePath=ServletActionContext.getServletContext().getInitParameter("filePath");

 

 

 if(StringUtils.isBlank(filePath)){

        log.info("filePath为空");

        filePath="images/tempUploadFile";

         

         }

 

 

 

long fileSize=myFile.length();

             if(fileSize>(1024*1024)){  //1mb文件大小

             

           

            ServletActionContext.getResponse().getWriter().write("<script>alert('文件超过指定的大小')</script>"); 

             }else{

            //String imageFileName = new Date().getTime() +getExtention(fileName); //图片的名字

             

            File imageFile = new File(ServletActionContext.getServletContext().getRealPath(filePath ) + "/" + fileName.substring(fileName.lastIndexOf('\\')+1));   //文件临时储存地

             

            boolean flag= copy(myFile, imageFile);  

if(flag){

String rspBody = "{\"msg\":\"" + true + "\"}";

ServletActionContext.getResponse().getWriter().write("<script>alert('上传成功')</script>"); ServletActionContext.getResponse().getWriter().write("<script>parent.callback(\""+rspBody+"\")</script>");//调用js的代码

}

}

 

}

private static boolean copy(File src, File dst)  {  

   try  {  

    int BUFFER_SIZE = 16 * 1024 ;  

      InputStream in = null ;  

      OutputStream out = null ;  

       try  {                  

          in = new BufferedInputStream( new FileInputStream(src), BUFFER_SIZE);  

          out = new BufferedOutputStream( new FileOutputStream(dst), BUFFER_SIZE);  

           byte [] buffer = new byte [BUFFER_SIZE];  

           while (in.read(buffer) > 0 )  {  

              out.write(buffer);  

          }   

       } finally  {  

           if ( null != in)  {  

              in.close();  

          }   

            if ( null != out)  {  

              out.close();  

          }   

      }   

   } catch (Exception e)  {  

    return false; 

  }   

   return true;

}

//获取扩展名

private static String getExtention(String fileName)  {  

         int pos = fileName.lastIndexOf( "." );  

         return fileName.substring(pos);  

    }   

 

分享到:
评论

相关推荐

    struts-ajax-json-struts包

    2. Struts2 AJAX插件:如struts2-ajax-plugin.jar,提供了AJAX相关的标签和拦截器。 3. Struts2 JSON插件:如struts2-json-plugin.jar,支持JSON序列化和反序列化。 4. 其他依赖库:可能包括Servlet API、Commons ...

    Struts2+Jquery+Ajax

    6. Struts2与Ajax的集成,使用JQuery的$.ajax()或$.getJSON()方法 7. 请求与响应的处理,包括参数传递和数据封装 8. 实例演示:使用Struts2+Jquery+Ajax实现动态加载数据或表单验证 "struts2 jar"文件包含了Struts2...

    ajax-struts2需要的3个包

    Struts2是一个非常流行的Java Web框架,它支持多种扩展,包括Ajax功能。在Struts2中实现Ajax交互,通常需要依赖一些特定的库和插件。以下是对"ajax-struts2需要的3个包"的详细解释: 1. **json.js**: 这是一个...

    struts2+jquery+ajax文件异步上传

    Struts2、jQuery和Ajax是Web开发中的三个关键组件,它们共同构成了文件异步上传的基础框架。这个项目是在MyEclipse环境下实现的一个简单的文件上传功能,让我们深入了解一下这些技术及其在文件上传中的应用。 首先...

    json-lib-2.1.jar和struts2-json-plugin-2.1.8.1.jar

    结合这三个组件,开发者可以构建出响应式、动态的Web应用,后端使用Struts 2处理业务逻辑,通过JSON Plugin返回JSON数据,前端利用jQuery通过AJAX请求获取这些数据,然后动态更新页面,提高用户体验。这种前后端分离...

    struts2-jquery-plugin使用手册,自己写的

    Struts2-jQuery-Plugin是基于Struts2框架的一个扩展插件,它为开发者提供了丰富的jQuery UI组件,使得在Struts2应用中实现交互式的用户界面变得更加便捷。这个使用手册将详细阐述如何集成并利用该插件提升Web应用的...

    jquery-java-ajax-uploadify上传文件

    在后端,如果是Java环境,可以使用诸如Spring MVC或Struts2等框架来接收和处理上传的文件。通常,你需要创建一个Controller方法,接收Multipart请求,然后将文件保存到服务器的指定目录: ```java import org....

    jquery ajax json struts2最简单例子测试成功

    在IT行业中,jQuery、AJAX、JSON以及Struts2是四个非常重要的技术,它们在Web开发领域中扮演着核心角色。下面将详细解释这些技术及其相互间的集成。 **jQuery** 是一个快速、简洁的JavaScript库,它简化了HTML文档...

    Jquery struts2 json 实现ajax

    标题 "Jquery struts2 json 实现ajax" 涉及到的是在Web开发中使用jQuery库与Struts2框架结合处理JSON数据的Ajax技术。这个主题主要关注如何通过前端的jQuery实现异步请求,与后端的Struts2框架进行交互,从而更新...

    jquery的ajax传json对象数组到struts2的action

    在Web开发中,jQuery的AJAX功能经常被用于与服务器进行异步数据交换,而Struts2作为一款流行的Java Web框架,提供了处理前端请求的能力。本文将深入探讨如何使用jQuery的AJAX方法发送JSON对象数组到Struts2的Action...

    struts2+ajax+jquery

    在这个"struts2+ajax+jquery"的主题中,我们将深入探讨如何利用Struts2、jQuery和Ajax技术实现Web页面的异步交互。 首先,Struts2作为MVC框架,它的核心是Action,它负责处理用户的请求,并通过配置的Result返回...

    使用struts2+JQuery实现的简单的ajax例子

    在这个简单的Ajax例子中,我们将探讨如何整合Struts2和jQuery来实现页面无刷新的数据更新。 首先,我们需要在项目中引入Struts2和jQuery的相关依赖。Struts2通常通过Maven或Gradle添加依赖库,包括核心库、struts2-...

    struts2-jquery-plug ShowCase

    Struts2与jQuery的集成主要依赖于struts2-jquery-plugin,这个插件提供了一系列的标签库,使开发者可以直接在JSP页面中使用jQuery功能,而无需编写大量的JavaScript代码。例如,`&lt;sj:head&gt;`标签会自动引入jQuery库和...

    图书管理系统-JQuery+Struts2+JDBC

    这个系统利用了前端的CSS进行页面美化和布局,通过JQuery增强用户体验并引入AJAX技术实现异步数据交换,后端则依赖于Struts 2框架来控制业务逻辑,并用JDBC与SQL Server 2000数据库进行数据交互。 首先,CSS...

    jquery下的ajax与struts2操作数据库

    1. **商品记录删除**:当用户点击删除按钮时,jQuery可以通过AJAX调用一个Struts2的Action,传递商品ID作为参数。在Action中,我们可以使用Hibernate或JDBC等持久层技术来执行SQL删除语句,然后返回一个表示操作成功...

    Struts2+jQuery ajax的一个商品小系统

    Struts2作为一个MVC(Model-View-Controller)框架,提供了强大的控制层逻辑,而jQuery则是一种高效的JavaScript库,简化了DOM操作、事件处理以及Ajax通信。在这个"商品小系统"中,它们的结合使用可以实现快速的数据...

    Struts2整合jQuery实现Ajax功能

    Struts2 框架与 jQuery 的整合使得在 Java Web 应用中实现 AJAX 功能变得更加便捷高效。AJAX(Asynchronous JavaScript and XML)技术允许前端与后台进行异步通信,提升用户体验,无需刷新整个页面即可更新部分内容...

    JQuery EasyUI 整合struts2 代码下载

    标题 "JQuery EasyUI 整合struts2 代码下载" 涉及到的是一个Web开发中的技术组合,主要集中在前端的JQuery EasyUI框架与后端的Struts2框架的集成应用。JQuery EasyUI是一个基于jQuery的UI库,提供了丰富的组件,如...

    struts2+json+jquery实现ajax数据的存取

    "Struts2+JSON+jQuery实现Ajax数据的存取"就是一个典型的示例,它结合了强大的MVC框架Struts2、轻量级的数据交换格式JSON以及高效的前端库jQuery,以实现网页上的无刷新数据交互。下面将详细介绍这三个技术及其在...

Global site tag (gtag.js) - Google Analytics