当前位置:首页 » 编程语言 » javaweb文件

javaweb文件

发布时间: 2023-06-11 12:02:30

java web 大文件上传下载

直接把大文件读取为IO流,之后进行上传下载即可,不用担心文件大,是可以分流下载上传的(setBufferSize(1024))。
举例:
import hkrt.b2b.view.util.Log;
import hkrt.b2b.view.util.ViewUtil;
import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;

import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;

public class CCFCCBFTP {

/**
* 上传文件
*
* @param fileName
* @param plainFilePath 明文文件路径路径
* @param filepath
* @return
* @throws Exception
*/
public static String fileUploadByFtp(String plainFilePath, String fileName, String filepath) throws Exception {
FileInputStream fis = null;
ByteArrayOutputStream bos = null;
FTPClient ftpClient = new FTPClient();
String bl = "false";
try {
fis = new FileInputStream(plainFilePath);
bos = new ByteArrayOutputStream(fis.available());
byte[] buffer = new byte[1024];
int count = 0;
while ((count = fis.read(buffer)) != -1) {
bos.write(buffer, 0, count);
}
bos.flush();
Log.info("加密上传文件开始");
Log.info("连接远程上传服务器"+CCFCCBUtil.CCFCCBHOSTNAME+":"+22);
ftpClient.connect(CCFCCBUtil.CCFCCBHOSTNAME, 22);
ftpClient.login(CCFCCBUtil.CCFCCBLOGINNAME, CCFCCBUtil.CCFCCBLOGINPASSWORD);
FTPFile[] fs;
fs = ftpClient.listFiles();
for (FTPFile ff : fs) {
if (ff.getName().equals(filepath)) {
bl="true";
ftpClient.changeWorkingDirectory("/"+filepath+"");
}
}
Log.info("检查文件路径是否存在:/"+filepath);
if("false".equals(bl)){
ViewUtil.dataSEErrorPerformedCommon( "查询文件路径不存在:"+"/"+filepath);
return bl;
}
ftpClient.setBufferSize(1024);
ftpClient.setControlEncoding("GBK");
// 设置文件类型(二进制)
ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
ftpClient.storeFile(fileName, fis);
Log.info("上传文件成功:"+fileName+"。文件保存路径:"+"/"+filepath+"/");
return bl;
} catch (Exception e) {
throw e;
} finally {
if (fis != null) {
try {
fis.close();
} catch (Exception e) {
Log.info(e.getLocalizedMessage(), e);
}
}
if (bos != null) {
try {
bos.close();
} catch (Exception e) {
Log.info(e.getLocalizedMessage(), e);
}
}
}

}

/**
*下载文件
*
* @param localFilePath
* @param fileName
* @param routeFilepath
* @return
* @throws Exception
*/
public static String fileDownloadByFtp(String localFilePath, String fileName,String routeFilepath) throws Exception {
FileInputStream fis = null;
ByteArrayOutputStream bos = null;
FileOutputStream fos = null;
FTPClient ftpClient = new FTPClient();
String SFP = System.getProperty("file.separator");
String bl = "false";
try {
Log.info("下载并解密文件开始");
Log.info("连接远程下载服务器"+CCFCCBUtil.CCFCCBHOSTNAME+":"+22);
ftpClient.connect(CCFCCBUtil.CCFCCBHOSTNAME, 22);
ftpClient.login(CCFCCBUtil.CCFCCBLOGINNAME, CCFCCBUtil.CCFCCBLOGINPASSWORD);
// ftpClient.connect(CMBCUtil.CMBCHOSTNAME, 2021);
// ftpClient.login(CMBCUtil.CMBCLOGINNAME, CMBCUtil.CMBCLOGINPASSWORD);
FTPFile[] fs;

ftpClient.makeDirectory(routeFilepath);
ftpClient.changeWorkingDirectory(routeFilepath);
bl = "false";
fs = ftpClient.listFiles();
for (FTPFile ff : fs) {
if (ff.getName().equals(fileName)) {
bl = "true";
Log.info("下载文件开始。");
ftpClient.setBufferSize(1024);
// 设置文件类型(二进制)
ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
InputStream is = ftpClient.retrieveFileStream(fileName);
bos = new ByteArrayOutputStream(is.available());
byte[] buffer = new byte[1024];
int count = 0;
while ((count = is.read(buffer)) != -1) {
bos.write(buffer, 0, count);
}
bos.flush();
fos = new FileOutputStream(localFilePath+SFP+fileName);
fos.write(bos.toByteArray());
Log.info("下载文件结束:"+localFilePath);
}
}
Log.info("检查文件是否存:"+fileName+" "+bl);
if("false".equals(bl)){
ViewUtil.dataSEErrorPerformedCommon("查询无结果,请稍后再查询。");
return bl;
}
return bl;
} catch (Exception e) {
throw e;
} finally {
if (fis != null) {
try {
fis.close();
} catch (Exception e) {
Log.info(e.getLocalizedMessage(), e);
}
}
if (bos != null) {
try {
bos.close();
} catch (Exception e) {
Log.info(e.getLocalizedMessage(), e);
}
}
if (fos != null) {
try {
fos.close();
} catch (Exception e) {
Log.info(e.getLocalizedMessage(), e);
}
}
}
}}
备注:以上方法就实现了流的二进制上传下载转换,只需要将服务器连接部分调整为本地的实际ftp服务用户名和密码即可。

❷ javaweb打包css文件部署在那里

1.
在eclipse中右键单击项目,然后Export选择WAR file,生成项目的WAR文件。具体步骤请看图片详细操作步骤:
2.
把生成的WAR文件放到tomcat解压之后的webapps文件夹下。
3.
在tomcat的conf文件夹里的server.xml进行配置: 在<Host></Host>标签之间添加

❸ 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 可以获取上传的文件名。

❹ javaweb如何将文件保存到服务器的指定目录

可以把文件目录配置在web.xml文件的初始化参数中, 通过ServletAPI读取文件目录

比如

定义一个Properties文件保存相关配置

#可以上传文件的后缀名

extensions=pptx,docx.doc,txt,jpg,jar

#单个文件的大小1M

fileMaxSize=1048576

#总共上传文件大小5M

totalFileMaxSize=5242880

#文件保存路径

filePath=z:/temp

#临时文件路径

tempDir=z:/temp/temp


使用Listener在服务器启动时加载配置信息

ServletContextcontext=event.getServletContext();
InputStreaminputStream=context
.getResourceAsStream("/WEB-INF/classes/file/upload/commons/uploadConfig.properties");
Propertiesproperties=newProperties();
try{
properties.load(inputStream);
context.setAttribute("fileConfig",properties);
System.out.println("properties="+properties.size());
}catch(IOExceptione){
e.printStackTrace();
}


在你上传文件时通过配置文件读取路径保存

String filePath = ((Properties) this.getServletContext().getAttribute("fileConfig"))

.getProperty(FileUploadConstants.FILE_PATH);

❺ java web文件上传报错

它说了嘛,DiskFileItemFactory不能强制类型转换为FileItemFactory,你看你DiskFileItemFactory用的是Apache的fileupload包里的,FileItemFactory用的是Tomcat的fileupload包,就像是你new了一只猫,然后强行把它赋值给了一条狗。(这个问题如果是在IDEA里它直接就会报错)所以你要统一一下,要么统一使用Apache的类,要么用Tomcat的。(建议都用Apache的)

❻ Java web文件上传怎么限制文件类型

  1. 前端限制,用 正则匹配文件名后缀 /.([jJ][pP][gG]){1}$|.([jJ][pP][eE][gG]){1}$|.([gG][iI][fF]){1}$|.([pP][nN][gG]){1}$|.([bB][mM][pP]){1}$/ 这个是图片正则匹配


  2. 服务端获取文件,用正则匹配文件名后缀


  3. =(MultipartHttpServletRequest)request;
    MultipartFilefile=mrequest.getFile("file");
    if(file!=null&&!file.isEmpty()){
    //获得文件类型(可以判断如果不是指定类型,禁止上传)
    StringcontentType=file.getContentType();

❼ Javaweb项目中页面展示是用什么文件

使用jsp和html展示内容以及和后端交互。
html是静态页面,jsp是动态页面,日常开发中,这两种都是结合使用的。
JSP全名为JavaServerPages,中文名叫java服务器页面,其根本是一个简化的设计,它 是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML标准通用标记语言的子集文件*.htm,*.html中插入Java程序段Scriptlet和JSP标记tag,从而形成JSP文件,后缀名为(*.jsp),用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。

热点内容
ohem算法 发布:2025-02-13 15:40:10 浏览:930
java编程课程 发布:2025-02-13 15:36:08 浏览:475
cs编译 发布:2025-02-13 15:36:07 浏览:55
高级语言都要编译解析型语言 发布:2025-02-13 15:06:32 浏览:304
openwrt源码下载 发布:2025-02-13 15:01:59 浏览:644
linux删除一个目录 发布:2025-02-13 15:00:29 浏览:539
蚂蚁存储 发布:2025-02-13 15:00:25 浏览:918
脚本师传奇 发布:2025-02-13 14:45:48 浏览:481
我的世界lce服务器剪辑 发布:2025-02-13 14:40:50 浏览:625
phpsftp上传 发布:2025-02-13 14:35:43 浏览:274