java文件上传到某一台指定服务器怎么弄?

java文件上传到某一台指定服务器怎么弄?,第1张

要将Java文件上传到指定服务器,可以使用以下步骤:

使用Java中的Socket类或Java NIO(New IO)库来建立网络连接。

在连接上发送文件,可以使用Java中的FileInputStream或FileReader类从本地文件系统读取文件内容,然后使用OutputStream或Writer类将文件内容写入网络连接。

服务器端,使用Java中的ServerSocket类或Java NIO库来接收网络连接。

在服务器端,读取网络连接中的文件内容,可以使用Java中的InputStream或Reader类从网络连接中读取文件内容,然后使用Java中的FileOutputStream或FileWriter类将文件内容写入服务器本地文件系统。

关闭网络连接和文件流。

需要注意的是,要确保服务器端有足够的权限来访问文件系统,并且要正确处理文件名和路径,以避免安全问题和文件冲突。

代码如下。。。我测试过了。。。。下面两个类是在同一台机器上进行测试的,先运行Serverjava,再运行Clientjava

import javaio;

import javanet;

import javatextSimpleDateFormat;

import javautilDate;

public class Server {

public static void main(String[] args) throws Exception{

ServerSocket ss = new ServerSocket(8080);

Socket socket = ssaccept();

BufferedReader in = //获取客户端发过来的消息

new BufferedReader(

new InputStreamReader(socketgetInputStream()));

PrintWriter out = //用于向客户端发送消息

new PrintWriter(

new OutputStreamWriter(

socketgetOutputStream()),true);

while(true){

String message = inreadLine();//读取消息

if("quit"equals(message))//退出命令

break;

String s[] = messagesplit("\\s+");

if("dir"equals(s[0])){

File dir = new File(s[1]);

File[] files = dirlistFiles();

//向客户端发送文件消息

for(File file:files){

Date date = new Date(filelastModified());

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");//日期格式化

FileInputStream is = new FileInputStream(file);

outprintln(filegetName()+"\t"+dfformat(date)+"\t"+((isavailable()+1023)/1024)+"k");

}

outprintln("ok");

}

}

socketclose();

inclose();

outclose();

ssclose();

}

}

-------------------------------------------------------------------------------------------------------------

import javaio;

import javanet;

public class Client {

public static void main(String[] args) throws Exception{

InetAddress add = InetAddressgetByName(null);

Socket socket = new Socket(add,8080);

BufferedReader in = //获取服务器端发过来的消息

new BufferedReader(

new InputStreamReader(socketgetInputStream()));

PrintWriter out = //用于向服务器端发送消息

new PrintWriter(

new OutputStreamWriter(

socketgetOutputStream()),true);

outprintln("dir d:/test");

String mes;

while(true){

mes = inreadLine();

if("ok"equals(mes))

break;

Systemoutprintln(mes);

}

outprintln("quit");

socketclose();

inclose();

outclose();

}

}

希望能帮到你。。。仍有问题可以追问或者直接HI我。。。

通过流来读取,例如:

TextFileForm fileForm = (TextFileForm) form; FormFile formFile = fileFormgetTxtFile(); if (formFilegetFileData()length == 0) { responsesetCharacterEncoding("gb2312"); responsegetWriter()write(""); } InputStream in = formFilegetInputStream(); WordExtractor extractor = new WordExtractor(); String str = extractorextractText(in);这段代码就是负责读取word的

你可以使用JSch

JSch全称是“Java Secure Channel”

是SSH2的一个纯Java实现。它允许你连接到一个sshd 服务器,使用端口转发,X11转发,文件传输等等。同时也是支持执行命令;

以下是大概运行的代码,只是提供大致思路,可以去查官方API和demo

import comjcraftjschChannelExec;

import comjcraftjschChannelSftp;

import comjcraftjschChannelSftpLsEntry;

import comjcraftjschJSch;

import comjcraftjschJSchException;

import comjcraftjschSession;

import comjcraftjschSftpATTRS;

import comjcraftjschSftpException;

try{

Session session = new JSch()getSession(user, ip, port);

sessionsetPassword(pwd);

sessionsetConfig("StrictHostKeyChecking", "no");

sessionsetConfig("userauthgssapi-with-mic", "no");

sessionconnect();

ChannelExec exec = (ChannelExec) sessionopenChannel("exec");

execsetCommand("ifconfig");//这里是你要执行的命令,部分命令不支持,具体自己执行下

ByteArrayOutputStream bao = new ByteArrayOutputStream();

execsetOutputStream(bao);

ByteArrayOutputStream baerr = new ByteArrayOutputStream();

execsetErrStream(baerr);

execconnect();

while (!execisEOF())

;

String errmsg = new String(baerrtoByteArray(), "utf-8");

if (StringUtilsnotNull(errmsg)) {

throw new RuntimeException(errmsg);

} else {

Systemoutprintln(new String(baotoByteArray(), "utf-8"));

}

}catch(Exception e){

    eprintStackTrace();

}finally{

    //关闭session等操作

}

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » java文件上传到某一台指定服务器怎么弄?

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情