‘壹’ 客户端怎样发送文件到服务器
用户名可以是明码,密码最简单可以用散列算法加密一次,比如MD5,稍微复杂点可以从服务器获取一个随机数,使用该随机数和密码组合后再进行散列,这样别人就不能通过截取你的包的方式来伪造登录,因为你的登录每次都是不同的,且都是由服务器决定的。
‘贰’ 客户端是如何上传数据到FTP服务器和从FTP服务器下载文件的
有专门的FTP软件的
客户端有flashfxp
服务端有Serv-U
FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。在FTP的使用当中,用户经常遇到两个概念:"下载"(Download)和"上传"(Upload)。"下载"文件就是从远程主机拷贝文件至自己的计算机上;"上传"文件就是将文件从自己的计算机中拷贝至远程主机上。用Internet语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件。
TCP/IP协议中,FTP标准命令TCP端口号为21,Port方式数据端口为20。FTP的任务是从一台计算机将文件传送到另一台计算机,不受操作系统的限制。
需要进行远程文件传输的计算机必须安装和运行ftp客户程序。在windows操作系统的安装过程中,通常都安装了tcp/ip协议软件,其中就包含了ftp客户程序。但是该程序是字符界面而不是图形界面,这就必须以命令提示符的方式进行操作,很不方便。
启动ftp客户程序工作的另一途径是使用ie浏览器,用户只需要在ie地址栏中输入如下格式的url地址:ftp://[用户名:口令@]ftp服务器域名:[端口号]
(在CMD命令行下也可以用上述方法连接,通过put命令和get命令达到上传和下载的目的,通过ls命令列出目录,除了上述方法外还可以在cmd下输入ftp回车,然后输入open IP来建立一个连接,此方法还适用于linux下连接ftp服务器)
通过ie浏览器启动ftp的方法尽管可以使用,但是速度较慢,还会将密码暴露在ie浏览器中而不安全。因此一般都安装并运行专门的ftp客户程序。
1.在本地电脑上登陆到国际互联网。
2.搜索有文件共享主机或者个人电脑(一般有专门的FTP服务器网站上公布的,上面有进入该主机或个人电脑的名称,口令和路径).
3.当与远程主机或者对方的个人电脑建立连接后,用对方提供的用户名和口令登陆到该主机或对方的个人电脑。
4.在远程主机或对方的个人电脑登陆成功后,就可以上传你想跟别人分享的东西或者下载别人授权共享的东西(这里的东西是指能放到电脑里去又能在显示屏上看到的东西).
5.完成工作后关闭FTP下载软件,切断连接。
‘叁’ 如何向服务器传文件
局域网,服务器上设置一个
共享盘
符就可以了,所有的客户端都能访问上传资料。
广域网,客户端上安装FlashXP,通过服务器的IP地址连接到服务器上,就能上传下载了。
‘肆’ xshell怎么上传文件到服务器
对于Linux用户来说,经常会使用到Xshell这个远程管理软件,比如会借助Xshell向Linux服务器上传文件,那么作为新手,肯定还不知道怎么操作,具体步骤如下:
步骤一:登录Linux服务器。打开Xshell,新建会话输入相应的主机名称和IP,登录Linux服务器。
图6:选择上传的文件
按照上面的步骤操作,就可以使用Xshell上传文件到服务器了,主要借助lrzsz实现Windows客户端向Linux服务器上传文件,从而实现快速上传文件,更多使用技巧可以访问Xshell中文官网。
‘伍’ 怎么从本地电脑上传文件到服务器
很简单.在本地电脑点开始.运行.输入mstsc后按确定.然后在弹出的窗口中.输入IP.此时记得点右下角的"选项"-本地资源.
在下方有个"详细信息".点击以后.一般有
智能卡
和
串行口
两个选项.
其中串行口就是指的本地硬盘.
勾选
上以后再
远程连接
服务器.远程成功以后在服务器中打开"我的电脑".里面会显示你本地的
电脑硬盘
.把你想
上传的文件
直接复制到服务器即可.
除此以外.你也可以在服务器上安装FTP.然后在本地通过FTP把文件上传.
或者是利用发邮件的方式把文件夹打包发送.并在服务器上登录邮件下载.
‘陆’ java中如何实现从客户端发送文件到服务器端
服务器端源码:
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;
/**
*
* 文件名:ServerReceive.java
* 实现功能:作为服务器接收客户端发送的文件
*
* 具体实现过程:
* 1、建立SocketServer,等待客户端的连接
* 2、当有客户端连接的时候,按照双方的约定,这时要读取一行数据
* 其中保存客户端要发送的文件名和文件大小信息
* 3、根据文件名在本地创建文件,并建立好流通信
* 4、循环接收数据包,将数据包写入文件
* 5、当接收数据的长度等于提前文件发过来的文件长度,即表示文件接收完毕,关闭文件
* 6、文件接收工作结束
public class ServerReceive {
public static void main(String[] args) {
/**与服务器建立连接的通信句柄*/
ServerSocket ss = null;
Socket s = null;
/**定义用于在接收后在本地创建的文件对象和文件输出流对象*/
File file = null;
FileOutputStream fos = null;
/**定义输入流,使用socket的inputStream对数据包进行输入*/
InputStream is = null;
/**定义byte数组来作为数据包的存储数据包*/
byte[] buffer = new byte[4096 * 5];
/**用来接收文件发送请求的字符串*/
String comm = null;
/**建立socekt通信,等待服务器进行连接*/
try {
ss = new ServerSocket(4004);
s = ss.accept();
} catch (IOException e) {
e.printStackTrace();
}
/**读取一行客户端发送过来的约定信息*/
try {
InputStreamReader isr = new InputStreamReader(s.getInputStream());
BufferedReader br = new BufferedReader(isr);
comm = br.readLine();
} catch (IOException e) {
System.out.println("服务器与客户端断开连接");
}
/**开始解析客户端发送过来的请求命令*/
int index = comm.indexOf("/#");
/**判断协议是否为发送文件的协议*/
String xieyi = comm.substring(0, index);
if(!xieyi.equals("111")){
System.out.println("服务器收到的协议码不正确");
return;
}
/**解析出文件的名字和大小*/
comm = comm.substring(index + 2);
index = comm.indexOf("/#");
String filename = comm.substring(0, index).trim();
String filesize = comm.substring(index + 2).trim();
/**创建空文件,用来进行接收文件*/
file = new File(filename);
if(!file.exists()){
try {
file.createNewFile();
} catch (IOException e) {
System.out.println("服务器端创建文件失败");
}
}else{
/**在此也可以询问是否覆盖*/
System.out.println("本路径已存在相同文件,进行覆盖");
}
/**【以上就是客户端代码中写到的服务器的准备部分】*/
/**
* 服务器接收文件的关键代码*/
try {
/**将文件包装到文件输出流对象中*/
fos = new FileOutputStream(file);
long file_size = Long.parseLong(filesize);
is = s.getInputStream();
/**size为每次接收数据包的长度*/
int size = 0;
/**count用来记录已接收到文件的长度*/
long count = 0;
/**使用while循环接收数据包*/
while(count < file_size){
/**从输入流中读取一个数据包*/
size = is.read(buffer);
/**将刚刚读取的数据包写到本地文件中去*/
fos.write(buffer, 0, size);
fos.flush();
/**将已接收到文件的长度+size*/
count += size;
System.out.println("服务器端接收到数据包,大小为" + size);
}
} catch (FileNotFoundException e) {
System.out.println("服务器写文件失败");
} catch (IOException e) {
System.out.println("服务器:客户端断开连接");
}finally{
/**
* 将打开的文件关闭
* 如有需要,也可以在此关闭socket连接
* */
try {
if(fos != null)
fos.close();
} catch (IOException e) {
e.printStackTrace();
}//catch (IOException e)
}//finally
}//public static void main(String[] args)
}//public class ServerReceive
客户端源码:
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintStream;
import java.net.Socket;
/**
*
* 文件名:ClientSend.java
* 实现功能:作为客户端向服务器发送一个文件
*
* 具体实现过程:
* 1、建立与服务器端的连接,IP:127.0.0.1, port:4004
* 2、将文件的名字和大小通过自定义的文件传输协议,发送到服务器
* 3、循环读取本地文件,将文件打包发送到数据输出流中
* 4、关闭文件,结束传输
*
* */
public class ClientSend {
public static void main(String[] args) {
/**与服务器建立连接的通信句柄*/
Socket s = null;
/**定义文件对象,即为要发送的文件
* 如果使用绝对路径,不要忘记使用'/'和'\'的区别
* 具体区别,请读者自行查询
* */
File sendfile = new File("API.CHM");
/**定义文件输入流,用来打开、读取即将要发送的文件*/
FileInputStream fis = null;
/**定义byte数组来作为数据包的存储数据包*/
byte[] buffer = new byte[4096 * 5];
/**定义输出流,使用socket的outputStream对数据包进行输出*/
OutputStream os = null;
/**检查要发送的文件是否存在*/
if(!sendfile.exists()){
System.out.println("客户端:要发送的文件不存在");
return;
}
/**与服务器建立连接*/
try {
s = new Socket("127.0.0.1", 4004);
}catch (IOException e) {
System.out.println("未连接到服务器");
}
/**用文件对象初始化fis对象
* 以便于可以提取出文件的大小
* */
try {
fis = new FileInputStream(sendfile);
} catch (FileNotFoundException e1) {
e1.printStackTrace();
}
/**首先先向服务器发送关于文件的信息,以便于服务器进行接收的相关准备工作
* 具体的准备工作,请查看服务器代码。
*
* 发送的内容包括:发送文件协议码(此处为111)/#文件名(带后缀名)/#文件大小
* */
try {
PrintStream ps = new PrintStream(s.getOutputStream());
ps.println("111/#" + sendfile.getName() + "/#" + fis.available());
ps.flush();
} catch (IOException e) {
System.out.println("服务器连接中断");
}
/**
* 此处睡眠2s,等待服务器把相关的工作准备好
* 也是为了保证网络的延迟
* 读者可自行选择添加此代码
* */
try {
Thread.sleep(2000);
} catch (InterruptedException e1) {
e1.printStackTrace();
}
/**之前的准备工作结束之后
* 下面就是文件传输的关键代码
* */
try {
/**获取socket的OutputStream,以便向其中写入数据包*/
os = s.getOutputStream();
/** size 用来记录每次读取文件的大小*/
int size = 0;
/**使用while循环读取文件,直到文件读取结束*/
while((size = fis.read(buffer)) != -1){
System.out.println("客户端发送数据包,大小为" + size);
/**向输出流中写入刚刚读到的数据包*/
os.write(buffer, 0, size);
/**刷新一下*/
os.flush();
}
} catch (FileNotFoundException e) {
System.out.println("客户端读取文件出错");
} catch (IOException e) {
System.out.println("客户端输出文件出错");
}finally{
/**
* 将打开的文件关闭
* 如有需要,也可以在此关闭socket连接
* */
try {
if(fis != null)
fis.close();
} catch (IOException e) {
System.out.println("客户端文件关闭出错");
}//catch (IOException e)
}//finally
}//public static void main(String[] args)
}//public class ClientSend
‘柒’ webservice怎么将客户端的文件上传到服务器
在服务端写一个专门针对文件的方法,客户端参数类型可以是Byte/DataHandler等类型,在服务端进行解析参数写入文件即可。最重要的是要设置WebService为可传递附件,默认的WebService仅仅支持一般数据类型的传递。
‘捌’ java客户端怎么把本地的文件上传到服务器
String realpath = ServletActionContext.getServletContext().getRealPath("/upload") ;//获取服务器路径
String[] targetFileName = uploadFileName;
for (int i = 0; i < upload.length; i++) {
File target = new File(realpath, targetFileName[i]);
FileUtils.File(upload[i], target);
//这是一个文件复制类File()里面就是IO操作,如果你不用这个类也可以自己写一个IO复制文件的类
}
其中private File[] upload;// 实际上传文件
private String[] uploadContentType; // 文件的内容类型
private String[] uploadFileName; // 上传文件名
这三个参数必须这样命名,因为文件上传控件默认是封装了这3个参数的,且在action里面他们应有get,set方法
‘玖’ 如何在客户端把文件上传到服务器端的共享文件夹c#
1.假如你的服务器是2k操作系统,那么在客户端直接运行
\\server\c$
打开服务器c盘,如果2k服务器账户设置了密码,这里还要输入密码.其中server为2k的服务器名,对应的改为你的服务器名字
然后把文件直接复制到\\server\c$即可.(其实这是2k的一个可笑的漏洞)
2.服务器如果是xp,2003.vista,以上方法就不行了.
(1)可以在服务器上安装个QQ,客户机的QQ给服务器的QQ传文件.
(2)服务器安装ftp服务端软件,客户机通过ftp上传到c盘
(3)开启服务器c盘共享(可写),客户端通过共享上传.
(4)第三方网盘中转,邮箱中转
每一种方法都可以.给你个思路.其中用QQ传最简单.不需要你做复杂的配置.推荐
‘拾’ 怎么从本地电脑上传文件到服务器
从本地电脑上传文件到vps或者服务器.可以有多种方法.
一.如果文件不大.可以在远程登录服务器的选项中.选择"本地资源"把本地的磁盘映射到服务器上面.然后登录服务器即可看到本地电脑的分区.直接把文件复制到服务器磁盘即可.
二.可以把要上传的文件打压.直接用发邮件附件的功能发送.然后在服务器或者vps上面登录邮箱下载到系统磁盘.
三.可以安装下ftp.比如说用serv-u安装.然后在本地电脑用flashfxp工具上传即可.
海腾数据杨闯为你解答.希望对你有帮助.