`
gg19861207
  • 浏览: 182808 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

实现了删除上传文件的ServiceBean和对应的Action

阅读更多

//UploadFileServiceBean 提供一个查找到要删除文件列表的函数

package com.itcast.service.product.impl;

import java.util.LinkedHashMap;
import java.util.List;

import javax.persistence.Query;

import org.springframework.stereotype.Service;

import com.itcast.service.base.DaoSupport;
import com.itcast.service.product.UploadFileService;
import com.itcast.util.QueryResult;
@Service
public class UploadFileServiceBean extends DaoSupport implements
UploadFileService {

public List<String> getSelectedFilePath(Integer[] ids) {
StringBuffer jpql = new StringBuffer();
for(int i =0;i<ids.length;i++){
//jpql is:?1,?2,?3,?4,
jpql.append("?").append(i+1).append(",");
}
jpql.deleteCharAt(jpql.length()-1);
String sql = "select o.filePath from UploadFile o where o.id in("+jpql.toString()+")";
Query query = em.createQuery(sql);
for(int i = 0;i<ids.length;i++){
query.setParameter((i+1), ids[i]);
}
System.out.println("-------------------in UploadFileServiceBean :jpql.toString() is:" + jpql.toString());
System.out.println("-------------------in UploadFileServiceBean :sql is:" + sql);
return query.getResultList();
}

}

//UploadFileManageAction 实现了添加上传文件和删除上传文件的方法

package com.itcast.web.action.product;

import java.io.File;
import java.io.FileOutputStream;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.UUID;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;
import org.springframework.stereotype.Controller;

import com.itcast.bean.product.UploadFile;
import com.itcast.service.product.UploadFileService;
import com.itcast.util.SetUrl;
import com.itcast.web.formbean.product.UploadFileForm;
@Controller("/control/uploadfile/manage")
public class UploadFileManageAction extends DispatchAction {
@Resource(name="uploadFileServiceBean")
private UploadFileService uploadFileService;

public ActionForward addUI(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
// TODO Auto-generated method stub
return mapping.findForward("addUI");
}

public ActionForward add(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
UploadFileForm formBean = (UploadFileForm)form;
UploadFile upoadfile = new UploadFile();

if(!formBean.validateUploadFile(formBean.getUploadfile())){
request.setAttribute("message", "为了保证服务器安全,只允许上传只允许上传图片/flash动画/word文件/exe文件/pdf文件/TxT文件/xls文件/ppt文件");
request.setAttribute("urladdress", SetUrl.getUrlAddress("control.uploadfile.list"));
return mapping.findForward("message");
}
if(formBean.getUploadfile()!= null && formBean.getUploadfile().getFileSize()>0){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd/HH");
String uploadfilepathdir = "/uploadfile/" + sdf.format(new Date());//构建图片保存的目录
//得到图片保存目录的真实路径
String uploadfilesavedir = request.getSession().getServletContext().getRealPath(uploadfilepathdir);
//System.out.println("-----------------------in BrandManageAction logorealpathdir is:" + logorealpathdir);
//System.out.println("-----------------------in BrandManageAction logopathdir is:" + logopathdir);
//创建文件目录
File uploadsavedir = new File(uploadfilesavedir);
//如果目录不存在就创建
if(!uploadsavedir.exists()){
uploadsavedir.mkdirs();
}
//得到上传文件的名字
String fileName = formBean.getUploadfile().getFileName();
//得到上传文件的扩展名,如.gif,.jpg
String ext = fileName.substring(fileName.lastIndexOf("."));
//构建文件保存时候的文件名
String uploadfileName = UUID.randomUUID().toString() + ext;
try {
FileOutputStream fops = new FileOutputStream(new File(
uploadsavedir, uploadfileName));
//将上传的文件信息保存到相应的文件目录里
fops.write(formBean.getUploadfile().getFileData());
fops.close();
} catch (Exception e) {
// TODO: handle exception
}
String uploadfilepath = "/baba1.1" +uploadfilepathdir + "/" + uploadfileName;
upoadfile.setFilePath(uploadfilepath);
}
uploadFileService.save(upoadfile);
request.setAttribute("message", "上传文件成功");
request.setAttribute("urladdress", SetUrl.getUrlAddress("control.uploadfile.list"));
return mapping.findForward("message");
}

public ActionForward delete(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
UploadFileForm formBean = (UploadFileForm)form;
Integer[] ids = formBean.getDelIds();

/**
* 删除服务器相应目录下的上传文件
*/

List<String> filePaths = uploadFileService.getSelectedFilePath(ids);
if(filePaths != null){
for(String filePath:filePaths){
System.out.println("----------filePath is:--------------" + filePath);
String deleteFileRealPath = request.getSession().getServletContext().getRealPath(filePath);
//创建文件目录
File deleteFiledir = new File(deleteFileRealPath);
//如果目录不存在就创建
if(deleteFiledir.exists()){
deleteFiledir.delete();
}

}
}

/**
* 删除数据库里的上传文件信息
*/

uploadFileService.delete(UploadFile.class, ids);

request.setAttribute("message", "删除上传文件成功");
request.setAttribute("urladdress", SetUrl.getUrlAddress("control.uploadfile.list"));
return mapping.findForward("message");
}
}

分享到:
评论

相关推荐

    云计算实验报告_2018522108_徐龙1

    实验的核心在于实现一个基于Hadoop的网盘程序,让用户能够进行文件的上传、下载和删除。这一过程涉及到的主要技术包括Servlet、JPA(Java Persistence API)以及JavaBean。在设计中,前端界面使用CSS、HTML和...

    Spring+xfire实现WebService

    3. **绑定接口和服务实现**: 使用`ServiceBean`将服务接口与其实现类绑定。在Spring配置文件中,通过`interface`属性指定接口,`serviceClass`属性指定实现类。 4. **发布Web服务**: 通过调用`ServiceBean`的`...

    Spring XFire 实现webService

    2. 配置服务接口和服务实现:定义服务接口(如`YourWebService`),并在Spring中声明对应的实现类(如`YourWebServiceBean`)。 ```java public interface YourWebService { public String doSomething(String ...

    xfire + struts + spring 开发webservices例子

    在IT行业中,Web服务是一种基于开放标准(如XML、WSDL和SOAP)的软件系统,它允许不同应用程序之间进行交互和数据交换。...通过理解这三个组件的相互作用,开发者能够更好地设计和实现复杂的分布式系统。

    dubbo第四节1

    1. **DubboNamespaceHandler** 是 Dubbo 的入口,负责解析 XML 配置文件中的 `&lt;dubbo:reference&gt;` 和 `&lt;dubbo:service&gt;` 标签,创建对应的 ReferenceBean 和 ServiceBean 实例。 2. **ReferenceBean 和 ServiceBean...

    Spring配置文件spring-context.zip

    Spring框架是Java开发中不可或缺的一部分,它以IoC(Inversion of Control,控制反转)和DI(Dependency Injection,依赖注入)为核心理念,极大地简化了企业级应用的开发工作。Spring框架提供了一个全面的编程和...

    cxf webservice restful实现

    - 配置CXF服务:在Spring配置文件中,使用`&lt;jaxrs:server&gt;`元素声明CXF服务,并通过`&lt;jaxrs:serviceBean&gt;`引用服务实现类。 2. **客户端调用**: - 创建服务代理:使用CXF的`JAXRSClientFactory`,可以生成客户端...

    使用XFire+Spring构建Web Service步骤

    在IT行业中,构建Web服务是实现系统间通信和数据交换的重要方式。XFire是一个流行的Java Web Service框架,它简化了创建、部署和消费Web服务的过程。而Spring框架以其强大的依赖注入和面向切面编程能力,使得集成...

    webservice(xfire)+spring的二种实现方式

    Spring 2.5引入了对JSR-250注解的支持,如`@WebService`,这使得可以直接在服务接口和实现类上使用注解,减少了XML配置的需求。例如: ```java @WebService(targetNamespace = "http://example.com/myweb", service...

    xfire-jsr181-api-1.0-实例化webservic

    XFire是一款早期的Java Web服务实现,它提供了一种简单、高性能的方式来创建和消费SOAP服务。JSR 181(JavaTM API for XML Web Services 1.0)是Java Community Process制定的一个标准,旨在简化Java中的Web服务开发...

    dubbo 控制台war部署文件

    2. **服务提供者和消费者配置**:在服务的XML配置文件中,你需要指定服务的接口、实现类、版本、Group等信息,并暴露服务到注册中心。 3. **Spring整合**:Dubbo可以与Spring框架深度整合,通过Spring的XML配置或...

    使用xfire+spring编写webservice例子,供大家学习与交流

    然后,使用`@Autowired`注解注入一个XFire的`ServiceBean`,并设置服务接口和实现: ```java @Service public class MyWebServiceImpl implements MyWebService { @Autowired private ServiceBean serviceBean; ...

    spring+xfire( 编写webservice完整配置+案例)

    这个案例中的压缩包文件可能包含了上述所有步骤的源代码示例,包括Spring配置文件、Java接口和实现类,以及可能的测试脚本。通过学习和分析这些文件,你可以更好地理解Spring和XFire如何协同工作,以及如何在实际...

    Spring和XFIRE结合

    标题 "Spring和XFIRE结合" 暗示了本文将探讨如何在Java应用程序开发中整合Spring框架与XFire服务框架,以实现轻量级、基于XML的Web服务。Spring是Java领域广泛使用的依赖注入(DI)和面向切面编程(AOP)框架,而...

    xfire spring jpa搭建环境

    - 创建DAO(Data Access Object)接口和实现类,利用JPA的`EntityManager`进行CRUD操作。 **5. 整合XFire和Spring**: - 使用Spring的AOP(面向切面编程)功能,为Web服务操作添加事务管理。 - 将XFire的服务...

    CXF WebService整合Spring的简单实现

    在IT行业中,Web服务是一种广泛使用的通信协议,它允许不同系统之间交换数据和实现功能集成。Apache CXF是一个流行的开源框架,专门用于构建和消费Web服务。本篇将深入探讨如何将Apache CXF与Spring框架整合,以实现...

    最新的ioc代码例子

    在Java开发中,IOC(Inversion of Control,控制反转)是一种设计原则,它将对象的创建和管理交给了外部容器,使得代码更加解耦和灵活。IoC的主要实现方式是依赖注入(Dependency Injection,DI)。在这个最新的IOC...

    JAXWS2.2-20091203.zip

    这个类允许开发者指定服务的地址和实现类,然后启动服务监听请求。 4. **客户端调用**:在客户端,可以使用`Service`类来动态创建代理,这个代理可以像调用本地方法一样调用远程Web服务。 **WSDL和SOAP** JAX-WS...

    Spring+Hibernate+Xfire实现远程分布式调用

    本主题将深入探讨如何使用Spring、Hibernate和Xfire来实现远程分布式调用。这些技术都是Java开发中的重要工具,Spring作为全面的框架提供了服务管理和依赖注入,Hibernate则是流行的ORM(对象关系映射)解决方案,而...

    xfire整合spring

    3. **实现Web服务**:在Java代码中,你可以使用Spring的`@Service`和`@WebService`注解来标记Web服务的接口和实现。Spring会自动处理依赖注入,而XFire则负责Web服务的暴露和调用。 4. **启动XFire**:在Spring启动...

Global site tag (gtag.js) - Google Analytics