JAVA WEB文件上传步骤
答案:6 悬赏:10 手机版
解决时间 2021-02-15 04:54
- 提问者网友:孤凫
- 2021-02-14 08:53
JAVA WEB文件上传步骤
最佳答案
- 五星知识达人网友:时间的尘埃
- 2021-02-14 09:36
JAVA WEB文件上传步骤如下:
实现 Web 开发中的文件上传功能,两个操作:在 Web 页面添加上传输入项,在 Servlet 中读取上传文件的数据并保存在本地硬盘中。
1、Web 端上传文件。在 Web 页面中添加上传输入项: 设置文件上传输入项时应注意:(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 可以获取上传的文件名。
实现 Web 开发中的文件上传功能,两个操作:在 Web 页面添加上传输入项,在 Servlet 中读取上传文件的数据并保存在本地硬盘中。
1、Web 端上传文件。在 Web 页面中添加上传输入项: 设置文件上传输入项时应注意:(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 可以获取上传的文件名。
全部回答
- 1楼网友:轻雾山林
- 2021-02-14 11:57
我不知道你做的具体是什么,是不是像QQ空间那个上传照片那样的功能。
首先。你上传东西,肯定要获取到资源地址
然后:你读取到资源,读出到某个你存放资源的地址。
这不就上传成功了么?
但是具体代码我也没写过,我也是菜鸟来得。大侠们勿喷。
这是我cpoy文件的代码。
package io.cb;
import java.io.*;
public class Copy {
public static void copy(String oldFilePath, String newFilePath,String fileName) {
File f1 = new File(oldFilePath); // 源文件的File对象
File f2 = new File(newFilePath+fileName+".txt"); // 目标文件的File对象
if (!f2.isFile() || !f2.exists()) {
InputStream input = null; // 准备好输入流对象,读取源文件
OutputStream out = null; // 准备好输出流对象,写入目标文件
try {
input = new FileInputStream(f1);
out = new FileOutputStream(f2);
int temp = 0;
try {
while ((temp = input.read()) != -1) { // 开始拷贝
out.write(temp); // 边读边写
}
System.out.println("拷贝完成!");
} catch (IOException e) {
e.printStackTrace();
System.out.println("拷贝失败!");
}
} catch (IOException e) {
e.printStackTrace();
}
}else{
System.out.println("文件已存在");
}
}
public static void main(String[] args) {
long start = System.currentTimeMillis();
copy("E:/帮助/Hibernate3.2+API.chm","E:/帮助/","Hibernate3.2+API_1.chm");
long end = System.currentTimeMillis();
System.out.println(end - start);
}
}
哎。不知道够不够用。
首先。你上传东西,肯定要获取到资源地址
然后:你读取到资源,读出到某个你存放资源的地址。
这不就上传成功了么?
但是具体代码我也没写过,我也是菜鸟来得。大侠们勿喷。
这是我cpoy文件的代码。
package io.cb;
import java.io.*;
public class Copy {
public static void copy(String oldFilePath, String newFilePath,String fileName) {
File f1 = new File(oldFilePath); // 源文件的File对象
File f2 = new File(newFilePath+fileName+".txt"); // 目标文件的File对象
if (!f2.isFile() || !f2.exists()) {
InputStream input = null; // 准备好输入流对象,读取源文件
OutputStream out = null; // 准备好输出流对象,写入目标文件
try {
input = new FileInputStream(f1);
out = new FileOutputStream(f2);
int temp = 0;
try {
while ((temp = input.read()) != -1) { // 开始拷贝
out.write(temp); // 边读边写
}
System.out.println("拷贝完成!");
} catch (IOException e) {
e.printStackTrace();
System.out.println("拷贝失败!");
}
} catch (IOException e) {
e.printStackTrace();
}
}else{
System.out.println("文件已存在");
}
}
public static void main(String[] args) {
long start = System.currentTimeMillis();
copy("E:/帮助/Hibernate3.2+API.chm","E:/帮助/","Hibernate3.2+API_1.chm");
long end = System.currentTimeMillis();
System.out.println(end - start);
}
}
哎。不知道够不够用。
- 2楼网友:话散在刀尖上
- 2021-02-14 11:03
服务器上你个人电脑找文件?卧槽。。。咋想的,还是老老实实把web基础理论看看再说
- 3楼网友:杯酒困英雄
- 2021-02-14 10:46
要是服务器可以在别人电脑上任意的找文件,隐私还要不要了?
- 4楼网友:掌灯师
- 2021-02-14 10:23
前台
1. jsp的Form中,添加一个
Form的enctype属性设置为multipart/form-data。
2 .javabean里设置对应的属性,类型为FormFile。
3 .后台可以从FormFile里取到上传文件的FileStream,
剩下的就是java文件操作了。
1. jsp的Form中,添加一个
Form的enctype属性设置为multipart/form-data。
2 .javabean里设置对应的属性,类型为FormFile。
3 .后台可以从FormFile里取到上传文件的FileStream,
剩下的就是java文件操作了。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯