您的位置:

java上传文件,java上传文件代码

本文目录一览:

JAVA WEB文件上传步骤

JAVA WEB文件上传步骤如下:

实现 Web 开发中的文件上传功能,两个操作:在 Web 页面添加上传输入项,在 Servlet 中读取上传文件的数据并保存在本地硬盘中。

1、Web 端上传文件。在 Web 页面中添加上传输入项:input type="file" 设置文件上传输入项时应注意:(1) 必须设置 input 输入项的 name 属性,否则浏览器将不会发送上传文件的数据。(2) 必须把 form 的 enctype 属性设为 multipart/form-data,设置该值后,浏览器在上传文件时,将把文件数据附带在 http 请求消息体中,并使用 MIME 协议对上传文件进行描述,以方便接收方对上传数据进行解析和处理。(3) 表单提交的方式要是 post

2、服务器端获取文件。如果提交表单的类型为 multipart/form-data 时,就不能采用传统方式获取数据。因为当表单类型为 multipart/form-data 时,浏览器会将数据以 MIME 协议的形式进行描述。如果想在服务器端获取数据,那么我们必须采用获取请求消息输入流的方式来获取数据。

3、Apache-Commons-fileupload。为了方便用户处理上传数据,Apache 提供了一个用来处理表单文件上传的开源组建。使用 Commons-fileupload 需要 Commons-io 包的支持。

4、fileuplpad 组建工作流程

(1)客户端将数据封装在 request 对象中。

(2)服务器端获取到 request 对象。

(3)创建解析器工厂 DiskFileItemFactory 。

(4)创建解析器,将解析器工厂放入解析器构造函数中。之后解析器会对 request 进行解析。

(5)解析器会将每个表单项封装为各自对应的 FileItem。

(6)判断代表每个表单项的 FileItem 是否为普通表单项 isFormField,返回 true 为普通表单项。

(7)如果是普通表单项,通过 getFieldName 获取表单项名,getString 获得表单项值。

(8)如果 isFormField 返回 false 那么是用户要上传的数据,可以通过 getInputStream 获取上传文件的数据。通过getName 可以获取上传的文件名。

java怎么实现上传文件到服务器

common-fileupload是jakarta项目组开发的一个功能很强大的上传文件组件

下面先介绍上传文件到服务器(多文件上传):

import javax.servlet.*;

import javax.servlet.http.*;

import java.io.*;

import java.util.*;

import java.util.regex.*;

import org.apache.commons.fileupload.*;

public class upload extends HttpServlet {

private static final String CONTENT_TYPE = "text/html; charset=GB2312";

//Process the HTTP Post request

public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

  response.setContentType(CONTENT_TYPE);

  PrintWriter out=response.getWriter();

  try {

  DiskFileUpload fu = new DiskFileUpload();

// 设置允许用户上传文件大小,单位:字节,这里设为2m

fu.setSizeMax(2*1024*1024);

// 设置最多只允许在内存中存储的数据,单位:字节

fu.setSizeThreshold(4096);

// 设置一旦文件大小超过getSizeThreshold()的值时数据存放在硬盘的目录

fu.setRepositoryPath("c://windows//temp");

//开始读取上传信息

List fileItems = fu.parseRequest(request);

// 依次处理每个上传的文件

 Iterator iter = fileItems.iterator();

//正则匹配,过滤路径取文件名

 String regExp=".+////(.+)$";

//过滤掉的文件类型

String[] errorType={".exe",".com",".cgi",".asp"};

 Pattern p = Pattern.compile(regExp);

   while (iter.hasNext()) {

     FileItem item = (FileItem)iter.next();

     //忽略其他不是文件域的所有表单信息

     if (!item.isFormField()) {

         String name = item.getName();

         long size = item.getSize();

         if((name==null||name.equals("")) size==0)

             continue;

     Matcher m = p.matcher(name);

     boolean result = m.find();

     if (result){

         for (int temp=0;tempERRORTYPE.LENGTH;TEMP++){

         if (m.group(1).endsWith(errorType[temp])){

               throw new IOException(name+": wrong type");

         }

         }

         try{

//保存上传的文件到指定的目录

//在下文中上传文件至数据库时,将对这里改写

         item.write(new File("d://" + m.group(1)));

out.print(name+"  "+size+"");

         }

         catch(Exception e){

           out.println(e);

         }

}

     else

     {

       throw new IOException("fail to upload");

     }

     }

 }

}

catch (IOException e){

 out.println(e);

}

catch (FileUploadException e){

    out.println(e);

}

}

}

现在介绍上传文件到服务器,下面只写出相关代码:

以sql2000为例,表结构如下:

字段名:name    filecode

类型: varchar     image

数据库插入代码为:PreparedStatement pstmt=conn.prepareStatement("insert into test values(?,?)");

代码如下:

。。。。。。

try{

      这段代码如果不去掉,将一同写入到服务器中

      //item.write(new File("d://" + m.group(1)));

         

      int byteread=0;

      //读取输入流,也就是上传的文件内容

      InputStream inStream=item.getInputStream();            

pstmt.setString(1,m.group(1));

      pstmt.setBinaryStream(2,inStream,(int)size);

      pstmt.executeUpdate();

      inStream.close();

out.println(name+"  "+size+" ");

      }

。。。。。。

这样就实现了上传文件至数据库

java里怎么使用curl命令上传文件

java中使用curl命令上传文件的使用方式如下:

curl -F "filename=@/home/test/file.tar.gz"

如果使用了-F参数,curl就会以 multipart/form-data 的方式发送POST请求。-F参数以name=value的方式来指定参数内容,如果值是一个文件,则需要以name=@file的方式来指定。如果通过代理,上面的命令有可能会被代理拒绝,这时需要指定上传文件的MIME类型 curl -x myproxy.com:1080 -F "filename=@/home/test/file.tar.gz;type=application/octet-stream"

另外,如果不上传文件,则可以使用 -d 参数,这时curl会以application/x-www-url-encoded 方式发送 POST 请求。

url -d "action=delname=archer" -d "id=12"

java如何实现文件上传

public static int transFile(InputStream in, OutputStream out, int fileSize) {

int receiveLen = 0;

final int bufSize = 1000;

try {

byte[] buf = new byte[bufSize];

int len = 0;

while(fileSize - receiveLen bufSize)

{

len = in.read(buf);

out.write(buf, 0, len);

out.flush();

receiveLen += len;

System.out.println(len);

}

while(receiveLen fileSize)

{

len = in.read(buf, 0, fileSize - receiveLen);

System.out.println(len);

out.write(buf, 0, len);

receiveLen += len;

out.flush();

}

} catch (IOException e) {

// TODO 自动生成 catch 块

e.printStackTrace();

}

return receiveLen;

}

这个方法从InputStream中读取内容,写到OutputStream中。

那么发送文件方,InputStream就是FileInputStream,OutputStream就是Socket.getOutputStream.

接受文件方,InputStream就是Socket.getInputStream,OutputStream就是FileOutputStream。

就OK了。 至于存到数据库里嘛,Oracle里用Blob。搜索一下,也是一样的。从Blob能获取一个输出流。

java中怎样上传文件

Java代码实现文件上传

FormFile file=manform.getFile(); 

  String newfileName = null;

  String newpathname=null;

  String fileAddre="/numUp";

  try {

   InputStream stream = file.getInputStream();// 把文件读入

    String filePath = request.getRealPath(fileAddre);//取系统当前路径

          File file1 = new File(filePath);//添加了自动创建目录的功能

       ((File) file1).mkdir();   

    newfileName = System.currentTimeMillis()

     + file.getFileName().substring(

       file.getFileName().lastIndexOf('.'));

   ByteArrayOutputStream baos = new ByteArrayOutputStream();

   OutputStream bos = new FileOutputStream(filePath + "/"

     + newfileName);

   newpathname=filePath+"/"+newfileName;

   System.out.println(newpathname);

   // 建立一个上传文件的输出流

    System.out.println(filePath+"/"+file.getFileName());

   int bytesRead = 0;

   byte[] buffer = new byte[8192];

   while ((bytesRead = stream.read(buffer, 0, 8192)) != -1) {

    bos.write(buffer, 0, bytesRead);// 将文件写入服务器

   }

   bos.close();

   stream.close();

    } catch (FileNotFoundException e) {

   e.printStackTrace();

  } catch (IOException e) {

   e.printStackTrace();

  }

文件上传java,文件上传java代码

2023-01-07
java上传文件,java上传文件代码

2022-12-01
文件上传JAVA,文件上传java web后端代码

2022-12-01
java文件上传,java文件上传接口

2022-11-28
java文件上传,java文件上传与下载

2022-11-30
java上传,java上传下载文件

2022-11-28
java视频上传,文件上传java

2022-12-01
java上传文件,java上传文件到ftp服务器

2022-12-01
java文件上传组件cos(java实现附件上传)

2022-11-15
java多个文件上传类源码下载,java 多文件上传

2022-11-22
上传文件java,上传文件找不到桌面上的文件

2023-01-05
javaftp上传下载中文文件(Java上传文件到ftp)

2022-11-14
java实现文件上传,Java实现文件上传服务器

2023-01-08
java文件传输,java文件传输代码

2022-11-22
java实现文件复制上传,java实现文件复制上传不了

2022-11-20
java文件批量转码,Java批量上传文件

2022-11-17
java上传附件,如何上传附件

2023-01-04
javajsp文件上传(java文件上传的几种方式)

本文目录一览: 1、jsp 大文件分片上传处理如何实现? 2、jsp 如何实现文件上传和下载功能? 3、java编程:怎么用JSP(javabean)上传一张图片到服务器的指定文件夹呢? 4、jsp文

2023-12-08
jsp上传文件部分代码(jsp 文件上传)

本文目录一览: 1、jsp上传文件代码! 2、Jsp上传图片到指定文件夹下 求详细代码 3、jsp 大文件分片上传处理如何实现? 4、求一段能用的jsp上传文件的代码 jsp上传文件代码! 其实就是读

2023-12-08
java模拟上传附件,java附件上传下载

2022-11-22