`
bruce198
  • 浏览: 235049 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

上传文件的Bean

    博客分类:
  • java
阅读更多
java 代码
  1. import java.io.*;   
  2. import javax.servlet.ServletInputStream;   
  3. import javax.servlet.http.HttpServletRequest;   
  4.   
  5. public class transfer_multi {   
  6.        
  7.     public String[] sourcefile = new String[255];// 源文件名   
  8.     public String objectpath = "c:/";// 目标文件目录   
  9.     public String[] suffix = new String[255];// 文件后缀名   
  10.     public String[] objectfilename = new String[255];// 目标文件名   
  11.     public ServletInputStream sis = null;// 输入流   
  12.     public String[] description = new String[255];// 描述状态   
  13.     public long size = 100 * 1024;// 限制大小   
  14.     private int count = 0;// 已传输文件数目   
  15.     private byte[] b = new byte[4096];// 字节流存放数组   
  16.     private boolean successful = true;   
  17.        
  18.     public void setSourcefile(HttpServletRequest request)   
  19.             throws java.io.IOException {   
  20.         sis = request.getInputStream();   
  21.         int a = 0;   
  22.         int k = 0;   
  23.         String s = "";   
  24.         while ((a = sis.readLine(b, 0, b.length)) != -1) {   
  25.             s = new String(b, 0, a);   
  26.             if ((k = s.indexOf("filename=")) != -1) {   
  27.                 s = s.substring(k + 10);   
  28.                 k = s.indexOf("");   
  29.                 s = s.substring(0, k);   
  30.                 sourcefile[count] = s;   
  31.   
  32.                 k = s.lastIndexOf(".");   
  33.                 suffix[count] = s.substring(k + 1);   
  34.                 System.out.println(suffix[count]);   
  35.                 if (canTransfer(count))   
  36.                     transferfile(count);   
  37.             }   
  38.             if (!successful)   
  39.                 break;   
  40.         }   
  41.     }   
  42.   
  43.     public int getCount() {   
  44.         return count;   
  45.     }   
  46.   
  47.     public String[] getSourcefile() {   
  48.         return sourcefile;   
  49.     }   
  50.   
  51.     public void setObjectpath(String objectpath) {   
  52.         this.objectpath = objectpath;   
  53.     }   
  54.   
  55.     public String getObjectpath() {   
  56.         return objectpath;   
  57.     }   
  58.   
  59.     private boolean canTransfer(int i) {   
  60.         suffix[i] = suffix[i].toLowerCase();   
  61.         // 这个是我用来传图片的,各位可以把后缀名改掉或者不要这个条件   
  62.         if (sourcefile[i].equals("")   
  63.                 || (!suffix[i].equals("gif") && !suffix[i].equals("jpg") && !suffix[i]   
  64.                         .equals("jpeg"))) {   
  65.             description[i] = "ERR suffix is wrong";   
  66.             return false;   
  67.         } else  
  68.             return true;   
  69.     }   
  70.   
  71.     private void transferfile(int i) {   
  72.         String x = Long.toString(new java.util.Date().getTime());   
  73.         try {   
  74.             objectfilename[i] = x + "." + suffix[i];   
  75.             FileOutputStream out = new FileOutputStream(objectpath   
  76.                     + objectfilename[i]);   
  77.             int a = 0;   
  78.             int k = 0;   
  79.             long hastransfered = 0;// 标示已经传输的字节数   
  80.             String s = "";   
  81.             while ((a = sis.readLine(b, 0, b.length)) != -1) {   
  82.                 s = new String(b, 0, a);   
  83.                 if ((k = s.indexOf("Content-Type:")) != -1)   
  84.                     break;   
  85.             }   
  86.             sis.readLine(b, 0, b.length);   
  87.             while ((a = sis.readLine(b, 0, b.length)) != -1) {   
  88.                 s = new String(b, 0, a);   
  89.                 if ((b[0] == 45) && (b[1] == 45) && (b[2] == 45)   
  90.                         && (b[3] == 45) && (b[4] == 45))   
  91.                     break;   
  92.                 out.write(b, 0, a);   
  93.                 hastransfered += a;   
  94.                 if (hastransfered >= size) {   
  95.                     description[count] = "ERR The file "  
  96.                             + sourcefile[count]   
  97.                             + " is too large to transfer. The whole process is interrupted.";   
  98.                     successful = false;   
  99.                     break;   
  100.                 }   
  101.             }   
  102.             if (successful)   
  103.                 description[count] = "Right The file " + sourcefile[count]   
  104.                         + " has been transfered successfully.";   
  105.             ++count;   
  106.             out.close();   
  107.             if (!successful) {   
  108.                 sis.close();   
  109.                 File tmp = new File(objectpath + objectfilename[count - 1]);   
  110.                 tmp.delete();   
  111.             }   
  112.         } catch (IOException ioe) {   
  113.             description[i] = ioe.toString();   
  114.         }   
  115.   
  116.     }   
  117.   
  118.     public transfer_multi() {   
  119.         // 可以在构建器里面构建服务器上传目录,也可以在javabean调用的时候自己构建   
  120.         setObjectpath("/home/www/jspvhost4/web/popeyelin/images/");   
  121.     }   
  122. }   
分享到:
评论

相关推荐

    一个完整的上传文件bean.rar_bean_上传文件

    在文件上传场景中,Java Bean可能用来存储上传文件的相关信息,如文件名、大小、类型等。 上传文件的过程中,我们可能会创建一个名为`FileUploadBean`的Java Bean,它包含文件的路径、名称、大小等属性。例如: ``...

    dubbo上传文件+oss上传文件服务.zip

    在本项目中,`file_provider`模块可能是一个实现了文件上传功能的服务提供者,它对外暴露了Dubbo接口,允许其他服务调用上传文件的方法。Dubbo服务提供者通常会包含服务接口定义、实现类以及相关的配置文件,如`...

    用JavaBean实现文件上传

    - `enctype`属性设置为`multipart/form-data`,这是上传文件所必需的,因为它允许在同一个请求中携带多个部分的数据,包括文件和其他表单字段。 - 表单包含多个`<input>`元素,其中`type="file"`用于让用户选择...

    SpringMVC文件上传Demo代码

    在这个示例中,`@RequestParam("file") MultipartFile file`参数表示从请求中获取名为"file"的上传文件。如果文件不为空,代码会尝试读取文件内容并将其保存到服务器。如果在处理过程中出现异常,会返回错误信息。 ...

    SSM上传文件到本地和云里面

    -- 设定最大上传文件大小,单位MB --> </bean> ``` 接着,我们需要创建一个Controller来处理文件上传请求。这里假设我们有一个名为`FileUploadController`的类,其中包含两个方法,分别处理本地和云端的文件上传...

    IDEA SpringMVC 实现文件的上传下载

    -- 指定最大上传文件大小 --> </bean> ``` 3. **Controller层处理**: 创建一个Controller类,定义两个方法,分别处理文件上传和下载的请求。在上传方法中,通过`@RequestParam("file") MultipartFile file`...

    java_code_of_windows.rar_windows

    5. "一个完整的上传文件bean.txt":文件名暗示了这是一个关于文件上传功能的JavaBean组件,通常在Web应用中用于处理用户上传的文件,可能包括文件大小限制、类型检查、错误处理等逻辑。 6. "在JAVA应用程序中如何...

    structs文件上传下载

    1. **大小限制**:为了避免DoS攻击或过度消耗服务器资源,应设置上传文件大小的限制。 2. **文件类型检查**:只允许特定类型的文件上传,防止恶意代码的注入。 3. **文件重命名**:上传的文件不应覆盖已存在的文件,...

    Struts1文件上传、单文件、多文件上传(上传文件大小问题,如何设置无限制)

    本文将详细介绍如何在Struts1中实现单文件上传和多文件上传,并探讨如何解决上传文件大小限制的问题。 #### 二、单文件上传 ##### 1. JSP页面设计 为了实现单文件上传,我们需要在JSP页面中创建一个表单,该表单...

    SpringMVC上传文件的四种方法

    -- 设置最大上传文件大小 --> </bean> ``` 在Controller中,同样可以使用`@RequestParam`接收文件: ```java @PostMapping("/upload") public String handleFileUpload(@RequestParam("file") ...

    struts1的文件上传

    文件上传是Web应用中常见的一种功能,允许用户从本地电脑上传文件到服务器。在Struts1中,这是通过`<html:file>`标签实现的。用户在表单中选择文件后,Struts1会自动处理文件内容并将其保存在服务器端。 2. **处理...

    Struts批量上传文件实例word

    在本文中,我们将探讨如何在Struts框架中实现批量上传文件的功能。批量上传文件是许多Web应用程序中常见的需求,例如创建文件资源中心或类似163网盘的功能。以下是如何使用Struts实现这一功能的详细步骤。 首先,...

    jsp,servlet上传下载文件

    2. 服务器端处理上传文件:在服务器端,使用 servlet 处理上传的文件,并将其存储到指定的位置。 3. 文件下载:在服务器端,提供文件下载的接口,客户端可以通过该接口下载文件。 jsp 页面的实现 在 jsp 页面中,...

    spring mvc上传文件

    -- 设定最大上传文件大小,单位为MB --> </bean> ``` 接下来,我们创建一个处理文件上传的Controller。在`@Controller`类中,我们可以定义一个`@RequestMapping`方法,该方法接收`MultipartFile`类型的参数,这...

    JavaBean实现多个文件上传的两种方法

    在JavaBean中,FTP上传实现可能涉及创建FTPClient实例,设置必要的FTP服务器参数,执行登录操作,然后使用`storeFile()`方法上传文件,最后确保连接正确关闭。这一过程相对独立于HTTP上传,更适合需要高安全性和复杂...

    Springmvc上传文件.docx

    SpringMVC 上传文件详解 SpringMVC 框架中上传文件是非常常见的操作,今天我们来详细讲解 SpringMVC 中的文件上传过程。 文件上传的必要条件 在 SpringMVC 中,文件上传需要满足以下几个条件: 1. 表单的 ...

    java 实现大文件上传

    ### Java实现大文件上传知识点详解 #### 一、文件上传的重要性及Java中的处理方式 文件上传作为B/S架构中的一项核心功能,在很多应用场景下都扮演着至关重要的角色。例如,在线文档分享、用户资料上传、多媒体文件...

    JSF 上传文件例子

    对于希望利用JSF上传文件的开发者(如文中提到的Benjmaz)来说,通常有以下三种选择: 1. 开发自定义组件:这是解决JSF文件上传问题的一种方法,通过编写自定义组件,可以扩展JSF的功能以支持文件上传。这通常涉及...

    struts1上传文件(commons-fileupload)

    在Struts1中,文件上传功能通常依赖于Apache Commons FileUpload库。下面将详细阐述Struts1中的文件上传实现及其相关知识点。 1. **Apache Commons FileUpload库** Commons FileUpload是Apache的一个子项目,专门...

    struts文件上传示例

    2. **表单标签库**: Struts提供了一个名为struts-bean的标签库,可以用来创建文件上传的HTML表单。例如,使用`<html:file>`标签来创建一个文件输入字段,用户可以通过这个字段选择要上传的文件。 3. **Action**: ...

Global site tag (gtag.js) - Google Analytics