`
GodIT
  • 浏览: 6438 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
最近访客 更多访客>>
社区版块
存档分类
最新评论

文件上传和删除

 
阅读更多
package cn.itcast.web.formbean.uploadfile;

import org.apache.struts.upload.FormFile;

import cn.itcast.web.formbean.BaseForm;

public class UploadfileForm extends BaseForm {
	private FormFile uploadfile;
	private Integer[] fileids;
	
	public Integer[] getFileids() {
		return fileids;
	}

	public void setFileids(Integer[] fileids) {
		this.fileids = fileids;
	}

	public FormFile getUploadfile() {
		return uploadfile;
	}

	public void setUploadfile(FormFile uploadfile) {
		this.uploadfile = uploadfile;
	}
	
}


package cn.itcast.web.action.uploadfile;

import java.util.LinkedHashMap;

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

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

import cn.itcast.bean.PageView;
import cn.itcast.bean.uploadfile.UploadFile;
import cn.itcast.service.uploadfile.UploadFileService;
import cn.itcast.web.formbean.uploadfile.UploadfileForm;


@Controller("/control/uploadfile/list")
public class UploadFileAction extends Action {
	@Resource(name="uploadFileServiceBean")
	private UploadFileService uploadFileService;
	
	@Override
	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) throws Exception {
		UploadfileForm formbean = (UploadfileForm) form;
		PageView<UploadFile> pageView = new PageView<UploadFile>(12, formbean.getPage());
		int firstindex = (pageView.getCurrentpage()-1)* pageView.getMaxresult();
		LinkedHashMap<String, String> orderby = new LinkedHashMap<String, String>();
		orderby.put("id", "desc");
		pageView.setQueryResult(uploadFileService.getScrollData(firstindex, 
				pageView.getMaxresult(), orderby));
		request.setAttribute("pageView", pageView);
		return mapping.findForward("list");
	}

}


package cn.itcast.service.uploadfile.impl;

import java.util.List;

import javax.persistence.Query;

import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import cn.itcast.bean.uploadfile.UploadFile;
import cn.itcast.service.base.DaoSupport;
import cn.itcast.service.uploadfile.UploadFileService;


@Service @Transactional
public class UploadFileServiceBean extends DaoSupport<UploadFile> implements UploadFileService {

	@SuppressWarnings("unchecked")
	public List<String> getFilepath(Integer[] ids){
		if(ids!=null && ids.length>0){
			StringBuffer jpql = new StringBuffer();
			for(int i=0; i<ids.length;i++){
				jpql.append('?').append((i+1)).append(',');
			}
			jpql.deleteCharAt(jpql.length()-1);
			Query query = em.createQuery("select o.filepath from UploadFile o where o.id in("+ jpql.toString()+ ")");
			for(int i=0; i<ids.length;i++){
				query.setParameter(i+1, ids[i]);
			}
			return query.getResultList();
		}
		return null;
	}
}




package cn.itcast.web.action.uploadfile;

import java.io.File;
import java.io.FileOutputStream;
import java.io.Serializable;
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 cn.itcast.bean.uploadfile.UploadFile;
import cn.itcast.service.uploadfile.UploadFileService;
import cn.itcast.utils.SiteUrl;
import cn.itcast.web.formbean.uploadfile.UploadfileForm;


@Controller("/control/uploadfile/manage")
public class UploadfileManageAction extends DispatchAction {
	@Resource(name="uploadFileServiceBean")
	private UploadFileService uploadFileService;
	
	/**
	 * 删除
	 */
	public ActionForward delete(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) throws Exception {		
		UploadfileForm formbean = (UploadfileForm) form;
		List<String> files = uploadFileService.getFilepath(formbean.getFileids());
		if(files!=null){
			for(String file : files){
				String realpath = request.getSession().getServletContext().getRealPath(file);
				File deletefile = new File(realpath);
				if(deletefile.exists()) deletefile.delete();
			}
			uploadFileService.delete((Serializable[])formbean.getFileids());
		}
		request.setAttribute("message", "文件删除成功");
		request.setAttribute("urladdress", SiteUrl.readUrl("control.uploadfile.list"));
		return mapping.findForward("message");
	}
	/**
	 * 上传界面
	 */
	public ActionForward uploadUI(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) throws Exception {		
		return mapping.findForward("upload");
	}
	
	/**
	 * 保存上传文件
	 */
	public ActionForward upload(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) throws Exception {
		UploadfileForm formbean = (UploadfileForm) form;
		if(formbean.getUploadfile()!=null && formbean.getUploadfile().getFileSize()>0){
			if(!UploadfileForm.validateFileType(formbean.getUploadfile())){
				request.setAttribute("message", "文件格式不正确,只允许上传图片/flash动画/word文件/exe文件/pdf文件/TxT文件/xls文件/ppt文件");
				return mapping.findForward("error");
			}
			String ext = UploadfileForm.getExt(formbean.getUploadfile());
			if(("gif".equals(ext) || "jpg".equals(ext) || "bmp".equals(ext) || "png".equals(ext))
					&& formbean.getUploadfile().getFileSize()>204800){
				request.setAttribute("message", "图片不能大于200K");
				return mapping.findForward("error");
			}
			SimpleDateFormat dateformat = new SimpleDateFormat("yyyy/MM/dd/HH");
			String pathdir = "/images/uploadfile/"+ dateformat.format(new Date());//构建文件保存的目录
			//得到图片保存目录的真实路径
			String realpathdir = request.getSession().getServletContext().getRealPath(pathdir);
			File savedir = new File(realpathdir);
			if(!savedir.exists()) savedir.mkdirs();//如果目录不存在就创建			
			String filename = UUID.randomUUID().toString()+ "."+ext;//构建文件名称
			FileOutputStream fileoutstream = new FileOutputStream(new File(realpathdir, filename));
			fileoutstream.write(formbean.getUploadfile().getFileData());
			fileoutstream.close();
			String path = pathdir+"/"+filename;
			UploadFile uploadfile = new UploadFile(path);
			uploadFileService.save(uploadfile);
			request.setAttribute("imagepath", uploadfile.getFilepath());			
			return mapping.findForward("uploadfinish");
		}else{
			request.setAttribute("error", "请上传文件");
		}
		return mapping.findForward("message");
	}
}
 
分享到:
评论

相关推荐

    MVC文件上传与删除.rar

    在ASP.NET MVC框架中,开发一个支持文件上传和删除功能的网站是一项常见的任务。layui是一个流行的前端组件库,它提供了丰富的UI元素和交互效果,包括文件上传组件。在这个项目中,我们将探讨如何利用layui和ASP.NET...

    tomcat文件上传下载、删除

    Tomcat本身并不直接提供文件上传、下载和删除的功能,但它可以通过部署在其中的Web应用来实现这些功能。通常,开发者会使用Servlet、JSP或Spring MVC等技术框架来编写处理文件操作的代码。 **文件上传** 在Tomcat...

    swfupload+ajax实现多文件上传下载删除并将上传文件上传到数据库

    本教程将详细介绍如何利用`swfupload`和Ajax实现多文件上传、下载、删除,并将上传的文件信息存储到数据库。 首先,`swfupload`是一个开源的文件上传组件,它支持多文件选择、预览、进度条显示等功能。由于Flash在...

    web文件上传浏览及删除的java实例.zip

    在Web开发中,文件上传、浏览和删除是常见的功能需求,尤其是在内容管理系统、社交媒体平台或者企业内部系统中。本实例以Java语言实现这些功能,旨在帮助开发者更好地理解和应用相关技术。下面将详细介绍这个Java...

    文件上传下载需要的jar包 java文件上传下载

    在Java开发中,文件上传和下载是常见的功能需求,尤其在网络应用中,如网页、桌面应用或移动应用。为了实现这些功能,开发者通常需要引入特定的库或jar包。在这个场景下,"文件上传下载需要的jar包"指的是用于处理...

    asp.net上传、读出、删除文件

    **一、文件上传** 在ASP.NET中,文件上传主要依赖于`&lt;asp:FileUpload&gt;`控件。首先,在网页的HTML部分添加此控件,然后在服务器端处理文件上传。以下是一个简单的示例: ```html 上传" runat="server" OnClick=...

    jsp-解决文件上传后重启Tomcat时文件自动删除问题.docx

    本文主要介绍了jsp解决文件上传后重启Tomcat时文件自动删除问题,包括问题分析和详细解决方法。该问题是指在jsp项目中上传文件后,重启Tomcat服务器或清理缓存时,上传的文件会自动删除的问题。 问题分析 在jsp...

    多文件上传 源码

    10. **用户界面优化**:为了让用户有更好的交互体验,上传界面应清晰展示文件上传进度、状态和操作选项,如暂停、恢复、删除等。 综上所述,这个"多文件上传 源码"涵盖了文件选择、读取、包装、异步上传、进度追踪...

    带进度条的文件上传,附带显示上传文件的列表,并且能删除已上传文件.rar

    "带进度条的文件上传,附带显示上传文件的列表,并且能删除已上传文件"这一主题,涉及的技术点主要包括前端交互设计、文件处理、异步传输、进度反馈和用户界面(UI)管理。 1. **前端交互设计**:这部分主要关注用户...

    多文件上传和图片删除

    在IT领域,多文件上传和图片删除是常见的功能需求,特别是在网页应用和移动应用中。这一功能涉及到前端和后端的交互,以及数据库管理和用户体验设计。以下是对这一主题的详细阐述: 1. **多文件上传**:多文件上传...

    android 文件上传含进度条

    接着,文件上传过程中显示进度条涉及网络编程和UI更新的知识。Android的AsyncTask或者Handler/Looper机制可以用来处理异步任务,如文件上传,同时更新UI。在上传过程中,我们可以通过监听网络请求的输入流和输出流的...

    Ruby-attache一个文件上传方式

    这个例子展示了如何在Rails控制器中处理文件上传和删除。当然,实际应用中可能需要根据具体需求进行更复杂的定制。 总的来说,Ruby-Attache是一个强大的工具,简化了文件上传的处理,同时提供了丰富的功能和高度的...

    移动端多文件上传删除实现.rar

    总的来说,“移动端多文件上传删除实现”涵盖了文件选择、预处理、上传、进度反馈、错误处理、删除及同步等一系列复杂流程,每个环节都需要细致的处理和优化。这个压缩包提供的可能是具体的实现代码或者教程,对于...

    ThinkPHP文件上传配置

    ThinkPHP文件上传配置 在ThinkPHP框架中,文件上传配置是...ThinkPHP文件上传配置是一个非常复杂的过程,需要我们逐一设置每个参数以确保文件上传的安全性和稳定性。正确地配置文件上传可以提高网站的性能和用户体验。

    jsp自行增加上传文件的批量文件上传

    本想做个批量文件上传的功能(设想是客户选择一个目录后,程序能判断需要上传的文件上传到服务器指定目录下),结果没有做出来,在网上找了许多版本的批量上传程序,但实验效果不好,有的还需要下载分,上传文件也不能...

    ASP无刷新上传删除

    【ASP无刷新上传删除】是一种基于ASP(Active Server Pages)技术的文件上传和删除功能,它结合了艾恩Ajax无刷新技术,实现了用户在不刷新整个网页的情况下进行文件操作。这种技术大大提升了用户体验,因为它避免了...

    文件上传与管理系统 文件上传

    在IT行业中,文件上传与管理系统是构建Web应用和服务不可或缺的一部分,尤其对于那些处理大量数据或文档的业务。本文将深入探讨“文件上传”这一主题,包括多文件上传、文件的永久删除、文件搜索以及下载查看等功能...

    文件上传下载服务器

    文件上传下载服务器是一种重要的网络服务,它为用户提供了一个方便、高效的方式来交换文件,特别是对于教育机构,如学校,教师可以利用这种服务收发作业、试卷等教学材料。在这个场景下,教师无需通过邮件或者传统的...

    jsp文件上传下载带删除功能

    【描述】"简单的文件上传下载和删除功能,不会导入的可以直接运行war包。"这说明了该示例项目是为初学者设计的,提供了一个易于理解和操作的环境。WAR(Web ARchive)文件是一种Java Web应用程序的标准打包格式,...

    PHP+jQuery带进度条和删除的异步多文件上传插件

    标题中的“PHP+jQuery带进度条和删除的异步多文件上传插件”是指一个结合了PHP后端处理和jQuery前端交互的文件上传解决方案。这个插件具备了现代Web应用中用户期望的功能,如实时进度反馈、多文件选择以及文件上传后...

Global site tag (gtag.js) - Google Analytics