JAVA文件上传的实现类

c#屏蔽键盘  msdn学习中心有一段小例子。 是用来记录按键次数的。我把它稍微做了一些改动,就可以屏蔽键盘输入了。不过只能屏蔽普通输入,一些控制键如tab,上下左右等是不能屏蔽的 public class myKeyPressClass {     static long keyPressCount = 0 ;     static long backspacePressed =  0;     阅读详情

/**
   * 文件上传的实现类,将源文件名去掉后用时间作为名字存放
   * @param len          request的长度
   * @param contentType  request的内容
   * @param in           request流
   * @return byte[]      上传文件的字节数组
   */
  public byte[] uploadToByte(int len,String contentType,InputStream in)
  {
      String upFile = "";
      try
      {
          byte buffer[] = new byte[len];

          int start = contentType.indexOf("boundary=");
          int boundaryLen = new String("boundary=").length();
          String boundary = contentType.substring(start + boundaryLen);
          boundary = "--" + boundary;

          int total = 0;
          int once = 0;
          while ( (total < len) && (once >= 0))
          {
              once = in.read(buffer, total, len);
              total += once;
          }


          String[] tokens =
              {
              "name=/"", "/"; filename=/"", "/"/r/n", "Content-Type: ",
              "/r/n/r/n"};

          //pos0 记录 boundary 的第一个字节在buffer 中的位置
          int pos0 = byteIndexOf(buffer, boundary, 0);
          int pos1 = 0; //pos1 记录在buffer 中下一个 boundary 的位置
          pos0 += boundaryLen; //记录boundary后面第一个字节的下标
          pos1 = byteIndexOf(buffer, boundary, pos0);
          pos0 += 2; //考虑到boundary后面的 /r/n
          buffer = subBytes(buffer, pos0, pos1 - 2);

          int[] position = new int[tokens.length];
          for (int i = 0; i < tokens.length; i++)
          {
              position[i] = byteIndexOf(buffer, tokens[i], 0);
          }

          //得到字段名
          String name = subBytesString(buffer,
                                       position[0] + bytesLen(tokens[0]),
                                       position[1]);

          //得到文件名
          String filename = subBytesString(buffer,
                                           position[1] + bytesLen(tokens[1]),
                                           position[2]);
          System.out.println("filename=" + filename); //eg:filename="c:/set.sql"

          //上传文件的路径
          int size = 0;

          for (int k = 0; k < filename.length(); k++)
          {
              if (filename.charAt(k) == '//')
              {
                  size = k;
              }
          }
          //System.out.println("the start position is:" + size);

          String myFile = filename.substring(size + 1, filename.length());

//            System.out.println("myFile = " + myFile);
//            int a = myFile.indexOf(".");
//            if (a > 0 )
//                myFile = myFile.substring(a);

//            long ltime = 0L;
//            Date dtime = new Date();
//            ltime = dtime.getTime(); //得到这个标识
//            String stime = ltime+"";//将这个标识转换成一个字符对象
//            //System.out.println("the file name is:" + stime + myFile);
//
//            //String writePath = "c://logs//" + stime + "_" + myFile;
//            //String readPath  = "c://logs//" + stime + "_" + myFile;
//            String writePath = Write_Photo_Path + stime+"_"+myFile;
//            String readPath  = Read_Photo_Path + stime + "_" + myFile;
//            //该文件的名称
//            this.file_name = stime + "_" + myFile;
            //String writePath = Write_Photo_Path +myFile;
            //String readPath  = Read_Photo_Path + myFile;
//            //该文件的名称
            this.file_name = myFile;


          //得到 Content-Type
          String content_Type = subBytesString(buffer,
                                               position[3] +
                                               bytesLen(tokens[3]),
                                               position[4]);
          //System.out.println("content_Type=" + content_Type);

          //得到文件内容
          byte[] b = subBytes(buffer, position[4] + bytesLen(tokens[4]),
                              buffer.length);
          //System.out.println(position[4] + bytesLen(tokens[4]));
          //System.out.println(buffer.length);
          this.bContent = b;//得到文件的BYTE数组
      }
      catch (Exception e)
      {
          e.printStackTrace();
          System.out.println("C:UploadBean;M:uploadToByte()-->" + e.getMessage());
      }
      return this.bContent;
  }


解决屏幕不亮难题:慷智SerDes DE信号极性配置避坑指南 本文深入探讨了基于慷智AIM95x系列SerDes芯片的嵌入式显示系统开发中,因DE信号极性配置不匹配导致屏幕不亮的典型故障。文章详细解析了DE信号的核心作用与极性定义,提供了慷智SerDes芯片中DE极性寄存器的具体配置方法与调试记录,并给出了从隔离问题、对比时序到波形验证的系统性排查流程,帮助工程师快速定位并解决此隐蔽问题。 阅读详情

相关推荐

点云处理实操(四) -PCL中的点云三角化

点云处理实操(四) -PCL中的点云三角化

cangqiongxiaoye的博客 924

FileItem的常用方法

FileItem的常用方法: 1. boolean isFormField() isFormField方法用于判断FileItem对象封装的数据是一个普通文本表单字段,还是一个文件表单字段,如果是普通表单字段则返回true,否则返回false。因此,可以使用该方法判断是否为普通表单域,还是文件上传表单域。 2. String getName() ...

一个大娘,两个大爷 648

Java程序中使用DLL屏蔽键盘输入的实现方法

本文还有配套的精品资源,点击获取 简介:在Java程序中利用动态链接库(DLL)阻止键盘输入是一个特定需求场景下的实用技术。Java通过Java Native Access (JNA)库调用本地DLL文件(如MaskKey.dll)来实现这一功能。开发者需要定义Java接口与本地库交互,并通过zyl.java文件来调用这些接口实现键盘屏蔽。此技术在自动化测试、安全软件等领域...

weixin_30021053的博客 1063

java实现的客户端向服务端上传文件的程序

------- android培训、java培训、期待与您交流! ---------- 练习:利用网络编程和前面所学,建立客户端向服务器端上传文件的程序。 思路:客户端和服务器端要建立连接,所以用TCP协议。 客户端方面:1.提示输入要上传的文件路径, 验证路径是否存在以及是否是文件夹          2.发送文件名到服务端 4.发送文件大小到服务端 7.接收结果, 如果

亚瑟的守护的专栏 2628

屏蔽键盘输入js

屏蔽键盘输入js onkeypress是在用户按下并放开任何字母数字键时发生。系统按钮(例如,箭头键和功能键)无法得到识别。 &lt;body onkeydown="enter()"&gt;//在body标签里添加onkeydown     &lt;SCRIPT LANGUAGE="JavaScript"&gt; function enter() {   if(window.eve...

jacke121的专栏 5732

Unity3D键盘输入被输入法屏蔽

尝试我的第一个Unity3D的script的时候,尝试键盘监听输入的时候,发现涡轮如何都监听不到键盘输入的值,变量的值显示一直是0。反复调试才发现是输入法中文模式下把键盘输入屏蔽掉了。。切换回引文输入法可以解决部分问题。 ...

qq_56721426的博客 1677

JAVA 编程规范

 1. 应用范围本规范应用于采用J2EE规范的项目中,所有项目中的JAVA代码(含JSP,SERVLET,JAVABEAN,EJB)均应遵守这个规范。同时,也可作为其它项目的参考。 2. 设计和方法2.1     创建具有很强内聚力的方法的重要性往往比的重要性更容易理解,方法是指执行一个统一函数的一段代码。常被错误的视为是一个仅仅用于存放方法的容器。有些开发人员甚至

2万+

提高JAVA水平从这里开始2--数据结构篇(二叉树)[转来的]

提高JAVA水平从这里开始2--数据结构篇(二叉树)[转来的]JAVA小猪Java (2003-04-22 17:09:24) -------------------------------------------------------------------------------- 上次用一个小程序讲解了链表,这里再用一个程序讲

6195

一个简单实用的数据库操作框架(JAVA)

前言这个小小的数据库操作封装框架是参考IBM开发网上的两篇文章并在其基础上扩充了一些功能而得到的。所以首先要感谢两篇文章的作者。学习JDBC以来一直想实现一个简单的封装来方便编程但是由于水平有限一直没有较好的办法,看了IBM开发网上的两篇文章以后感觉作者的设计思想很好一定能扩充成一个实用的JDBC封装。所以我在文章提供的源码基础上加了一些功能这些功能包括支持多种数据型,处理了

5976

提高JAVA水平从这里开始1--数据结构篇[转来的]

提高JAVA水平从这里开始1--数据结构篇[转来的]JAVA小猪Java (2003-04-22 17:07:31) -------------------------------------------------------------------------------- 在电脑语言方面我是从tc开始,我钟爱C的原因是它让我明白许多DOS命令的原理

5872

JAVA数据库连接大全[转]

一、jsp连接Oracle8/8i/9i数据库(用thin模式) testoracle.jsp如下: String url="jdbc:oracle:thin:@localhost:1521:orcl"; //orcl为你的数据库的SID String user="scott"; String password="tiger"; Connection conn= D

3357

java读写ini配置文件

java中,配置文件一般主要是两种形式:xml文件或者property文件。但大部分人都习惯使用ini文件,而且ini文件的分节以及注释功能,比起xml,也是易懂易用的。    在vc中库中有读写ini文件的标准函数。在dephi或其他语言中,也可以用windows的api函数来读写ini文件。但在java中似乎没有现成的和方法可供使用。虽然java可以通过加载dll文件的方

2297

Java学习:一个压缩文件的例子

/** * @(#) ZipFile.java * * Copyright 2004 Opensource Develop Team. All rights reserved. */package com.opensource.zip;import java.io.File;import java.io.FileInputStream;import java.i

2172

JDom操作XML文件读写

所谓JDom,最简单的理解方法就是java+xml=JDom。下面提供一个简单的操作XML的例子。        1、下面是例子使用的一个XML文件:/***位于C盘根目录下*abc.xml**/                      jhgjg    jhgjg    jhjh        fdsa    fasdf    fsadfa  2

2047

JavaMail操作的总结(1)

在整理网友的文章的时候,发现一个javamail的总结,特此谢谢the_east_key,并且公布给大家,希望对大家有做帮助,全文如下: 本文章对: 发送普通邮件,接受普通邮件 发送带有附件的邮件,接收带有附件的邮件 发送html形式的邮件,接受html形式的邮件 [b[发送带有图片的邮件[/b]等做了一个总结。 import java.awt.*; import java.awt.event.*

1916

精通ejb

 转载自:http://www.java-cn.com/technology/technology_detail.jsp?id=781总 揽 一、Server方组件结构 EJB是一种Server方的组件结构,它可以非常简单的开发基于java的企业级的分布式对象应用。使用EJB可以开发出易升级的、可靠的、安全的应用程序,而不用独立开发复杂的分布式对象框架;EJB可以迅速开

1913

20分钟熟悉猛虎脾气-JDK1.5新特性介绍

“JDK1.5”(开发代号猛虎)的一个重要主题就是通过新增一些特性来简化开发,这些特性包括泛型,for-each 循环,自动装包/拆包,枚举,可变参数, 静态导入 。使用这些特性有助于我们编写更加清晰,精悍,安全的代码。 下面我们简单介绍一下这些新特性。 1.泛型(Generic) C++通过模板技术可以指定集合的元素型,而Java在1.5之前一直没有相对应的功能。一个集合可以放任何

1880

EJB核心技术及其应用

EJB核心技术及其应用  作者:周波 文章摘要:   EJB的全称是Enterprise java bean。是JAVA中的商业应用组件技术。EJB结构中的角色 EJB 组件结构是基于组件的分布式计算结构,是分布式应用系统中的组件...  一、EJB技术简介  EJB的全称是Enterprise java bean。是JAVA中的商业应用组件技术。EJB结构中的角色 EJB 组

1840

天气预报小程序源码天气微信小程序源码

天气预报小程序源码,天气微信小程序源码。API使用的是和风天气。可以提供实时全国天气气象信息,及时发布天气预报、灾害预警、气象云图、旅游天气、台风、暴雨雪等气象信息,为我国的生产生活提供全面精确的气象服务。

上一篇: .Net中操作MySql数据库
下一篇: SQL SERVER实用经验技巧集
gztoby
博客等级 码龄22年 70粉丝 281原创
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值