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");
}
}
分享到:
相关推荐
在ASP.NET MVC框架中,开发一个支持文件上传和删除功能的网站是一项常见的任务。layui是一个流行的前端组件库,它提供了丰富的UI元素和交互效果,包括文件上传组件。在这个项目中,我们将探讨如何利用layui和ASP.NET...
Tomcat本身并不直接提供文件上传、下载和删除的功能,但它可以通过部署在其中的Web应用来实现这些功能。通常,开发者会使用Servlet、JSP或Spring MVC等技术框架来编写处理文件操作的代码。 **文件上传** 在Tomcat...
本教程将详细介绍如何利用`swfupload`和Ajax实现多文件上传、下载、删除,并将上传的文件信息存储到数据库。 首先,`swfupload`是一个开源的文件上传组件,它支持多文件选择、预览、进度条显示等功能。由于Flash在...
在Web开发中,文件上传、浏览和删除是常见的功能需求,尤其是在内容管理系统、社交媒体平台或者企业内部系统中。本实例以Java语言实现这些功能,旨在帮助开发者更好地理解和应用相关技术。下面将详细介绍这个Java...
在Java开发中,文件上传和下载是常见的功能需求,尤其在网络应用中,如网页、桌面应用或移动应用。为了实现这些功能,开发者通常需要引入特定的库或jar包。在这个场景下,"文件上传下载需要的jar包"指的是用于处理...
**一、文件上传** 在ASP.NET中,文件上传主要依赖于`<asp:FileUpload>`控件。首先,在网页的HTML部分添加此控件,然后在服务器端处理文件上传。以下是一个简单的示例: ```html 上传" runat="server" OnClick=...
10. **用户界面优化**:为了让用户有更好的交互体验,上传界面应清晰展示文件上传进度、状态和操作选项,如暂停、恢复、删除等。 综上所述,这个"多文件上传 源码"涵盖了文件选择、读取、包装、异步上传、进度追踪...
"带进度条的文件上传,附带显示上传文件的列表,并且能删除已上传文件"这一主题,涉及的技术点主要包括前端交互设计、文件处理、异步传输、进度反馈和用户界面(UI)管理。 1. **前端交互设计**:这部分主要关注用户...
在IT领域,多文件上传和图片删除是常见的功能需求,特别是在网页应用和移动应用中。这一功能涉及到前端和后端的交互,以及数据库管理和用户体验设计。以下是对这一主题的详细阐述: 1. **多文件上传**:多文件上传...
本文主要介绍了jsp解决文件上传后重启Tomcat时文件自动删除问题,包括问题分析和详细解决方法。该问题是指在jsp项目中上传文件后,重启Tomcat服务器或清理缓存时,上传的文件会自动删除的问题。 问题分析 在jsp...
接着,文件上传过程中显示进度条涉及网络编程和UI更新的知识。Android的AsyncTask或者Handler/Looper机制可以用来处理异步任务,如文件上传,同时更新UI。在上传过程中,我们可以通过监听网络请求的输入流和输出流的...
这个例子展示了如何在Rails控制器中处理文件上传和删除。当然,实际应用中可能需要根据具体需求进行更复杂的定制。 总的来说,Ruby-Attache是一个强大的工具,简化了文件上传的处理,同时提供了丰富的功能和高度的...
总的来说,“移动端多文件上传删除实现”涵盖了文件选择、预处理、上传、进度反馈、错误处理、删除及同步等一系列复杂流程,每个环节都需要细致的处理和优化。这个压缩包提供的可能是具体的实现代码或者教程,对于...
本想做个批量文件上传的功能(设想是客户选择一个目录后,程序能判断需要上传的文件上传到服务器指定目录下),结果没有做出来,在网上找了许多版本的批量上传程序,但实验效果不好,有的还需要下载分,上传文件也不能...
ThinkPHP文件上传配置 在ThinkPHP框架中,文件上传配置是...ThinkPHP文件上传配置是一个非常复杂的过程,需要我们逐一设置每个参数以确保文件上传的安全性和稳定性。正确地配置文件上传可以提高网站的性能和用户体验。
【ASP无刷新上传删除】是一种基于ASP(Active Server Pages)技术的文件上传和删除功能,它结合了艾恩Ajax无刷新技术,实现了用户在不刷新整个网页的情况下进行文件操作。这种技术大大提升了用户体验,因为它避免了...
在IT行业中,文件上传与管理系统是构建Web应用和服务不可或缺的一部分,尤其对于那些处理大量数据或文档的业务。本文将深入探讨“文件上传”这一主题,包括多文件上传、文件的永久删除、文件搜索以及下载查看等功能...
文件上传下载服务器是一种重要的网络服务,它为用户提供了一个方便、高效的方式来交换文件,特别是对于教育机构,如学校,教师可以利用这种服务收发作业、试卷等教学材料。在这个场景下,教师无需通过邮件或者传统的...
【描述】"简单的文件上传下载和删除功能,不会导入的可以直接运行war包。"这说明了该示例项目是为初学者设计的,提供了一个易于理解和操作的环境。WAR(Web ARchive)文件是一种Java Web应用程序的标准打包格式,...
标题中的“PHP+jQuery带进度条和删除的异步多文件上传插件”是指一个结合了PHP后端处理和jQuery前端交互的文件上传解决方案。这个插件具备了现代Web应用中用户期望的功能,如实时进度反馈、多文件选择以及文件上传后...