往服务器上传指定文件

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

import org.apache.commons.net.ftp.FTPClient;
import org.apache.log4j.Logger;

public class PublicFileUtil
{
private static Logger logger = Logger.getLogger(FTPclientUtil.class);

/**
* Description: 往服务器上传指定文件 。
* 1、路径不存在,可以创建路径
* 2、可以上传指定格式的文件
*
* @param remotePath
* util.properties配制的路径key
* eg:resource_root.courseware,前面不要系统带环境标示
* @param fileName
* 上传到FTP服务器上的文件名
*
* @param finput
* 本地路径 输入流
*
* @param isDir
* false 服务器路径不存在,不创建,直接返回路径不存在(路径有权限控制)
*
* @return 成功返回success
* @throws IOException
*/
public static String webUploadFile(String remotePath, String fileName,
InputStream finput, boolean isDir) {
String result = "uploadError";

String firstFileName = fileName.substring(0,fileName.lastIndexOf("."));
String endFileName = fileName.substring(fileName.lastIndexOf("."),fileName.length()).toLowerCase();
firstFileName=firstFileName+"^"+System.currentTimeMillis();
fileName = firstFileName+endFileName;
if (CheckNull.isNull(finput)) {
// 上传的文件不存在
return "undefindFile";
}

// 判断环境
String fileSavePath =PublicUtil.getSystemRemotePath(remotePath);

// 如果文件夹不存在就自动创建一个文件夹
File fileTemp = new File(fileSavePath);
if (!(fileTemp.exists()) && !(fileTemp.isDirectory()))
{
if(isDir)
{
fileTemp.mkdirs();
}
else
{
//直接返回远程路径不存在
return "undefindRemort";
}
}

FileOutputStream fos = null;
boolean falg = true;

byte[] buffer = new byte[1024];
int len = 0;
try
{
fos = new FileOutputStream(fileSavePath + File.separator + fileName);
while ((len = finput.read(buffer)) > 0)
{
fos.write(buffer, 0, len);
}
fos.flush();
}
catch (IOException e)
{
logger.error("---上传文件失败!---", e);
falg = false;
}

// 关闭流
if (null != finput)
{
try
{
finput.close();
}
catch (IOException e)
{
logger.error("---上传文件关闭流失败!---", e);
falg = false;
}
}
if (null != fos)
{
try
{
fos.close();
}
catch (IOException e)
{
logger.error("---上传文件关闭流失败!---", e);
falg = false;
}
}

if (falg)
{
result = fileName;
}
return result;
}

/**
* 关闭连接
*/
public static void closeConnect(FTPClient ftpClient, OutputStream os,
FileInputStream fis,InputStream ins) {
try {
if (null != ftpClient) {
ftpClient.logout();
ftpClient.disconnect();
}

if (null != os) {
os.flush();
os.close();
}

if (null != fis) {
fis.close();
}

if (null != ins) {
ins.close();
}

} catch (Exception e) {
e.printStackTrace();
}
}

}

时间: 2024-10-07 02:06:30

往服务器上传指定文件的相关文章

FTP上传指定文件夹及其文件到服务器

1.在服务器端的IIS上建立一个FTP站点 注意事项:路径关联到你要存放(上传内容)的文件夹名称: 指定这个FTP站点的ip地址和端口号 2.本地准备代码 -------------------------------2.1上传类--------------------------------------------------------- public class Up    {        /// <summary>        ///   上传文件菜单        /// <

向云服务器上传下载文件方法汇总(转)

转载于:https://yq.aliyun.com/articles/64700 摘要: 一.向Windows服务器上传下载文件方式 方法有很多种,此处介绍远程桌面的本地资源共享方法. 1.运行mstsc,连接远程桌面的时候,点"选项>>" 2."本地资源"-->详细信息. 3."磁盘驱动器"前面打钩. 一.向Windows服务器上传下载文件方式 方法有很多种,此处介绍远程桌面的本地资源共享方法. 1.运行mstsc,连接远程桌

向linux服务器上传下载文件方式收集

向linux服务器上传下载文件方式收集 1. scp [优点]简单方便,安全可靠:支持限速参数[缺点]不支持排除目录[用法] scp就是secure copy,是用来进行远程文件拷贝的.数据传输使用 ssh,并且和ssh 使用相同的认证方式,提供相同的安全保证 . 命令格式: scp [参数] <源地址(用户名@IP地址或主机名)>:<文件路径> <目的地址(用户名 @IP 地址或主机名)>:<文件路径> 举例: scp /home/work/source.

经验分享] 向云服务器上传下载文件方法汇总

一.向Windows服务器上传下载文件方式 方法有很多种,此处介绍远程桌面的本地资源共享方法. 1.运行mstsc,连接远程桌面的时候,点"选项>>" <ignore_js_op> 2."本地资源"-->详细信息. <ignore_js_op> 3."磁盘驱动器"前面打钩. <ignore_js_op> 4.连接远程电脑后,打开"我的电脑",就能看到刚刚共享的硬盘驱动器.把

Linux下不借助工具实现远程linux服务器上传下载文件

# Linux下不借助工具实现远程linux服务器上传下载文件 ## 简介 - Linux下自带ssh工具,可以实现远程Linux服务器的功能- Linux下自带scp工具,可以实现文件传输功能 ## 登录服务器 - `ssh [email protected]` 登录服务器```PC:~$ ssh [email protected][email protected]'s password: ``` ## 文件传输 - 下载文件- `scp [email protected]:/data/log

使用批处理文件在FTP服务器 上传下载文件

1.从ftp服务器根目录文件夹下的文件到指定的文件夹下 格式:ftp -s:[配置文件] [ftp地址] 如:ftp -s:c:\vc\ftpconfig.txt   192.168.1.1 建立一个批处理文件:命名为 test.bat(名称可以随便,为了方便操作,直接命名为1.bat)  然后将上面的内容拷贝进去 ftpconfig.txt的文件内容是: testuser test get test.exe    C:\ftptest\testdownload.exe bye 解释: 前两条命

Java通过FTP服务器上传下载文件的解决方案

对于使用文件进行交换数据的应用来说,使用FTP 服务器是一个很不错的解决方案.本文使用Apache Jakarta Commons Net(commons-net-3.3.jar)基于FileZilla Server服务器实现FTP服务器上文件的上传/下载/删除等操作. 关于FileZilla Server服务器的详细搭建配置过程,详情请见FileZilla Server安装配置教程.之前有朋友说,上传大文件(几百M以上的文件)到FTP服务器时会重现无法重命名的问题,但本人亲测上传2G的文件到F

Spring中利用组件实现从FTP服务器上传/下载文件

FtpUtil.java import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import org.apache.commons.ne

springmvc中Tomcat跨服务器上传中文名文件报错解决方案

今天花了一整天时间解决tomcat跨服务器上传文件失败的问题,经过各种搜索终于解决了,下面是解决具体方法: 一.首先修改Tomcat的只读属性为false. 在tomcat的conf目录下的web.xml文件中找到<servlet>标签,添加初始化参数readonly,代码如下: <servlet> <servlet-name>default</servlet-name> <servlet-class>org.apache.catalina.se