『壹』 客戶端怎樣發送文件到伺服器
用戶名可以是明碼,密碼最簡單可以用散列演算法加密一次,比如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工具上傳即可.
海騰數據楊闖為你解答.希望對你有幫助.