zoukankan      html  css  js  c++  java
  • action中实现对批量文件上传的封装

         如今,文件(尤其是图片)上传,在前后台的应用相当普遍,上传头像、共享资料等已成为最基本应用。我们很希望通过一个万能的封装方法来实现一劳永逸的效果。

        接下来,就来为大家介绍具体实现。

        首先,我们需要一个struts框架下的项目工程,在webRoot目录下新建upload文件夹,用来存放上传文件

        然后,写一个简单的jsp,实现(批量)文件上传功能,这里注意:将所有上传文件框的name属性设为file,以便action接收

        之后,编写action,在action内首先要写入如下几个变量,及其get/set方法。

            private List<File> file;
            private List<String> fileFileName;
    	private List<String> fileContentType;

         各自代表的意义一目了然。

         接下来就正式编写封装方法


    public String uploadImg() throws IOException {
    		String str = null;
    		// 得到工程保存图片的路径
    		String root = ServletActionContext.getRequest().getRealPath("/upload");
    
    		// 循环上传的文件
    		for (int i = 0; i < file.size(); i++) {
    			InputStream is = new FileInputStream(file.get(i));
    
    			// 得到图片保存的位置(根据root来得到图片保存的路径在tomcat下的该工程里)
    			File destFile = new File(root, this.getFileFileName().get(i));
    			str = destFile.getName();
    			// 把图片写入到上面设置的路径里
    			OutputStream os = new FileOutputStream(destFile);
    			byte[] buffer = new byte[400];
    			int length = 0;
    			while ((length = is.read(buffer)) > 0) {
    				os.write(buffer, 0, length);
    			}
    			is.close();
    			os.close();
    		}
    
    		return str;
    	}


         OK,这个方法既实现了将文件保存到tomcat下的相应文件夹中,又将保存的文件名告诉了我们, "upload/" + uploadImg()   即是本工程下的路径。

         如果文件是某对象的一个属性,那么直接XXX.setXxx( "upload/" + uploadImg())  存于数据库


    下一篇  介绍文件的转移  

               以前的文件上传只是存放于tomcat本项目下的文件夹中,接下来我们要实现本项目上传文件至其他项目的文件夹下,如商城后台如何将后台上架图片放到前台展示,欢迎关注


  • 相关阅读:
    简单区分Vmware的三种网络连接模式(bridged、NAT、host-only)
    linux创建账户并自动生成主目录和主目录下的文件
    EF 通用数据层类
    html在线美化网站
    图片在页面中居中显示
    __dopostback的用法
    rdlc报表集锦
    .NET开源免费的功能强大控件库
    使用webclient上传下载实例
    消息队列将并发变串行
  • 原文地址:https://www.cnblogs.com/keanuyaoo/p/3329139.html
Copyright © 2011-2022 走看看