`
zzy7182
  • 浏览: 122885 次
  • 性别: Icon_minigender_1
  • 来自: 火车头
社区版块
存档分类
最新评论

上传本地文件到服务器上

 
阅读更多
上传文件到服务器上的方法:
1:使用commons-fileupload代码如下:
   	boolean isMultipart = ServletFileUpload.isMultipartContent(request);
            
            if (isMultipart) {
                DiskFileItemFactory factory = new DiskFileItemFactory();
                factory.setSizeThreshold(10*1024); // 设置上传缓冲大小(10K)
                factory.setRepository(uploadTempDir); // 设置上传临时存放文件夹(文件尺寸大于上传缓存容量)
                ServletFileUpload upload = new ServletFileUpload(factory);
                upload.setFileSizeMax(20*1024*1024); // 设置上传文件允许的最大尺寸(20M)
                
                List items = null;
                // 解析上传请求并判断是否超出允许上传的最大尺寸
                try {
                    items = upload.parseRequest(request);
                } catch (FileSizeLimitExceededException e) { // 如果超出允许上传的最大尺寸
                	e.printStackTrace();
        			logger.error(ExceptionUtil.getStackTraceMessage(e));
        			uploadResult.put("success", new Boolean(false));
                    uploadResult.put("errorMessage", "文件大小超过20MB");
                    return uploadResult;
                }
                
                Iterator iter = items.iterator();
                while (iter.hasNext()) {
                    FileItem item = (FileItem) iter.next();
                    if (!item.isFormField()) {
                    	originalFileName = item.getName();
                    	// 如果文件域为空或者文件大小为零则进入下次循环
    					if (StringUtils.isBlank(originalFileName) || item.getSize() == 0) {
    						continue;
    					}
                        // 获取原始文件名称
                        originalFileName = StringUtils.trimToEmpty(StringUtils.substring(originalFileName, StringUtils.lastIndexOf(originalFileName, "\\") + 1));
                        // 获取原始文件后缀
                        fileExt = StringUtils.lowerCase(StringUtils.trimToEmpty(StringUtils.substring(originalFileName, StringUtils.lastIndexOf(originalFileName, "."))));
                        // 生成文件在服务器上实际存储名称
                        realFileNameAtServer = DateUtil.getDate("yyyyMMddHHmmssSSS") + fileExt;
                        // 生成文件在服务器上实际存储位置
                        realFilePath = StringUtils.trimToEmpty(realFilePath) + "/" + realFileNameAtServer;
                        
                        
                        // 读取上传文件并保存在服务器指定目录中
                        int readbyte = -1; // 每次实际读入的字节数
                        byte[] buff = new byte[1024]; // 存储每次读取的数据
                        BufferedInputStream bis = null; // 缓存输入流
                        BufferedOutputStream bos = null; // 缓存输出流
                        try {
                        	bis = new BufferedInputStream(item.getInputStream(), buff.length);
                        	bos = new BufferedOutputStream(new FileOutputStream(new File(realFilePath)));
                			while((readbyte = bis.read(buff, 0, buff.length)) > -1) {
                				bos.write(buff, 0, readbyte);
                			}
                        	bos.flush();
                        } catch(IOException ioe) {
                        	ioe.printStackTrace();
                			logger.error(ExceptionUtil.getStackTraceMessage(ioe));
                			uploadResult.put("success", new Boolean(false));
                            uploadResult.put("errorMessage", "上传文件失败");
                            return uploadResult;
                        } catch(Exception e) {
                        	e.printStackTrace();
                			logger.error(ExceptionUtil.getStackTraceMessage(e));
                			uploadResult.put("success", new Boolean(false));
                            uploadResult.put("errorMessage", "上传文件失败");
                            return uploadResult;
                        } finally {
                        	try {
                        		// 关闭输出流
                        		if(bos != null) {
                        			bos.close();
                        		}
                        		// 关闭输入流
                        		if(bis != null) {
                        			bis.close();
                        		}
                        	} catch(IOException ioe) {
                        		ioe.printStackTrace();
                    			logger.error(ExceptionUtil.getStackTraceMessage(ioe));
                            }
                        }
                        
                        
                    }
                }
            }



分享到:
评论

相关推荐

    VB上传本地文件到服务器

    在VB(Visual Basic)编程中,上传本地文件到服务器是一个常见的任务,特别是在开发Web应用程序时。这个过程涉及客户端(用户计算机)与服务器之间的数据交互,通常通过HTTP协议完成。以下是对这一主题的详细阐述: ...

    WinForm上传文件到服务器

    本篇内容介绍如何使用WinForm实现文件的上传功能,即将本地文件传输至远程服务器。该功能主要通过`System.Net`命名空间中的`WebClient`类实现。 #### 关键技术与代码解析 1. **WebClient 类** `WebClient` 类是...

    python3写的简单本地文件上传服务器实例

    2、检查服务器上是否存在,不存在直接上传,存在的话,文件夹无视,文件比较大小,大小不一致则覆盖,最后检查服务器上是否存在本地没有的文件,存在则删除 3、之后增加了忽略列表,忽略文件类型 4、然后增加了重启...

    java上传文件到linux服务器,操作linux服务器上文件,下载linux服务器文件,删除linux服务器文件

    接着,打开一个`Sftp`会话,使用`put()`方法将本地文件上传到服务器。 ```java Sftp sftp = session.openSftp(); sftp.put(本地文件路径, 远程目标路径); sftp.close(); ``` **操作Linux服务器上的文件** ganymed...

    NodeJS本地上传文件至服务器

    在Node.js环境中,将本地文件上传到服务器是一个常见的任务,主要应用于文件共享、数据备份、内容发布等场景。本文将详细讲解如何使用Node.js实现这一功能。 首先,我们需要理解Node.js的基本概念。Node.js是一个...

    springboot以FTP方式上传文件到远程服务器

    @ApiOperation(value = "本地文件上传",notes ="本地文件上传" ) public Map uploadfunction(HttpServletRequest request, HttpServletResponse response){ //创建文件对象并获取请求中的文件对象 MultipartFile ...

    上传本地文件夹的文件到FTP服务器指定目录

    在IT行业中,文件传输是日常...总之,上传本地文件夹的文件到FTP服务器指定目录是一个涉及FTP协议、C#编程和文件系统操作的综合任务。通过理解这些知识点,结合实际项目需求,可以创建一个高效且安全的文件上传工具。

    在html页面使用JavaScript实行文件上传到本地服务器并获取文件所在路径

    使用JavaScript实现文件上传到本地服务器并获取到上传后文件所在路径,是由到JavaScript,java以及html页面。这个比较好,不是在jsp上获取路径,jsp太简单了,而且过时了,所以就在html页面实现了下功能,我主要是做...

    winform上传文件到服务器

    本教程将深入探讨如何使用WinForm实现文件或文件夹的上传功能,将其发送到远程服务器。我们将关注的重点是如何构建这样的系统,包括客户端的交互设计以及与服务器的通信。 首先,我们需要在WinForm中创建一个用户...

    SFTP定时扫描本地文件上传到Linux服务器

    【标题】"SFTP定时扫描本地文件上传到Linux服务器"涉及的关键知识点主要集中在SFTP(Secure File Transfer Protocol)协议的使用、文件系统的监控以及自动化任务的执行。SFTP是一种安全的网络协议,用于在不同主机...

    java 监听本地文件自动上传服务器

    本篇文章将详细探讨如何使用Java实现本地文件监听,并自动将其上传至服务器,以实现文件同步功能。 首先,让我们从“JAVA 监听文件夹变化”这个知识点开始。Java提供了一种称为`WatchService`的机制,它允许程序...

    java 实现上传文件到远程服务器

    ### Java 实现上传文件到远程服务器(Spring MVC) 在现代软件开发中,文件上传功能是十分常见的需求之一,尤其在Web应用中。本篇文章将详细介绍如何利用Java编程语言结合Spring MVC框架来实现文件的远程上传功能。...

    Finalshell windows版的 可以上传/下载 文件到服务器/本地。

    - **上传文件**:Finalshell支持用户直接从本地文件系统选择文件或文件夹,通过SSH协议安全地上传到远程服务器。这在需要更新网站文件、部署应用或传输大数据时特别有用。 - **下载文件**:同样,用户可以方便地从...

    pb上传文件到服务器硬盘上

    ### pb上传文件到服务器硬盘上的方法与技巧 在IT领域中,通过编程工具实现文件的远程上传是一项常见的需求。本文将详细介绍如何利用PowerBuilder(简称PB)这一开发工具,实现文件从本地上传到服务器硬盘的过程,并...

    C# 通过WebService上传视频文件到服务器虚拟机下源码

    本主题将深入探讨如何使用C#通过Web Service上传视频文件到服务器虚拟机下的源码实践。 首先,`WebService`是基于HTTP协议的远程调用技术,允许不同的应用程序之间进行数据交换。在C#中,我们通常使用ASP.NET来创建...

    android本地文件上传至服务器

    实现:将android文件通过服务端上传至服务器; 获取android本地文件,通过调用服务端后台代码进行文件上传。 只需要分别调用移动端uploadMultiFile()方法和服务端upload()方法。

    bat脚本实现上传文件至Linux服务器

    bat脚本实现将Windows文件上传至Linux服务器 不同选项实现具体功能、检查资源存在 、 确认上传

    java上传文件到服务器

    上传的文件需要在服务器上存储,这涉及到文件存储策略的选择。你可以选择直接存储在服务器的文件系统中,或者使用数据库(BLOB类型字段),甚至是云存储服务如Amazon S3或Google Cloud Storage。每种策略都有其优...

    上传文件到服务器

    在IT领域中,文件上传是一项非常常见的操作,它涉及到将本地计算机上的文件传输到远程服务器上。这一过程广泛应用于各种场景,比如网站开发、软件部署、数据备份等。理解如何有效地上传文件对于IT专业人士来说至关...

    C# winform上传照片到服务器

    在C# WinForm应用开发中,上传照片到服务器是一个常见的需求,这涉及到客户端与服务器之间的文件传输技术。本文将深入探讨如何实现这个功能,以及如何根据要求修改照片的名字。 首先,我们需要了解C#中的文件操作...

Global site tag (gtag.js) - Google Analytics