ssh上傳下載實現
❶ ssh怎麼把本地的文件上傳到伺服器
由於使用ssh,我們無法使用簡單的拖拽或者復制粘貼操作對本地計算機和ssh伺服器上的文件進行交流。我們需要用到scp命令行。
程序代碼
scp <本地文件名> <用戶名>@<ssh伺服器地址>:<上傳保存路徑即文件名>
舉例以說明:
如果希望將當前目錄下的a.txt文件上傳到ssh伺服器上test文件夾並改名為b.txt,其中ssh伺服器網址為127.0.0.1,用戶名admin。
代碼如下:
程序代碼 scp a.txt [email protected]:/home/neo/test/b.txt
下載也很簡單,只需要將「本地文件名」和後面伺服器的信息對調即可
❷ 如何通過ssh上傳文件到伺服器
需要用到scp命令行。
scp <本地文件名> <用戶名>@<ssh伺服器地址>:<上傳保存路徑即文件名> /*註:必須在未登錄伺服器的情況下*/
舉例以說明:
如果希望將當前目錄下的a.txt文件上傳到ssh伺服器上test文件夾並改名為b.txt,其中ssh伺服器網址為127.0.0.1,用戶名admin。
代碼如下:
程序代碼 scp a.txt [email protected]:/home/neo/test/b.txt
下載也很簡單,只需要將「本地文件名」和後面伺服器的信息對調即可
❸ SSH框架實現文件上傳和下載
我給你提供思路,自己去實現。
1、你用的是SSH框架,spring有一個MultipartFile技術,支持單文件和多文件上傳
2、下載直接用BufferedInputStream+BufferedOutputStream去實現就可以了。
這兩個都是很好學的。挺簡單的
❹ 使用windows客戶端ssh遠程連接linux主機,怎麼進行文件的上傳下載
如果你的windows安裝了openssh軟體,那麼直接用
『sftp
登陸用戶名@遠端linux的IP』
就可以登陸傳輸東西了,裡面的命令跟ftp很像,先cd到你要傳的文件所在的目錄,然後用『lcd』設置本地上傳下載的目錄,然後用』get或者put『上傳下載。如果你不想這么麻煩,直接下個ftp工具就好了。我平時都用的』fz『全稱』filezilla『。直接連過去,圖形界面操作,簡單快捷
❺ Linux下如何利用ssh傳輸文件
在linux下一般用scp這個命令來通過ssh傳輸文件。
1、從伺服器上下載文件
scp username@servername:/path/filename /var/www/local_dir(本地目錄)
例如scp [email protected]:/var/www/test.txt 把192.168.0.101上的/var/www/test.txt 的文件下載到/var/www/local_dir(本地目錄)
2、上傳本地文件到伺服器
scp /path/filename username@servername:/path
例如scp /var/www/test.php [email protected]:/var/www/ 把本機/var/www/目錄下的test.php文件上傳到192.168.0.101這台伺服器上的/var/www/目錄中
3、從伺服器下載整個目錄
scp -r username@servername:/var/www/remote_dir/(遠程目錄) /var/www/local_dir(本地目錄)
例如:scp -r [email protected]:/var/www/test /var/www/
4、上傳目錄到伺服器
scp -r local_dir username@servername:remote_dir
例如:scp -r test [email protected]:/var/www/ 把當前目錄下的test目錄上傳到伺服器的/var/www/ 目錄
❻ SSH2中、從本地上傳文件是怎麼實現的
<s:form action="****" namespace="/***" enctype="multipart/form-data" theme="simple">
<input type="file" id="fi" name="myFile" style="height: 30"/>
<input type="submit" value="提交"/>
</s:form>
ACTION中:
// myFile屬性用來封裝上傳的文件
private File myFile;
// myFileContentType屬性用來封裝上傳文件的類型
private String myFileContentType;
// myFileFileName屬性用來封裝上傳文件的文件名
private String myFileFileName;
方法中:
//設置上傳文件目錄
String filePath=ServletActionContext.getServletContext().getRealPath("/****");
//基於myFile創建文件輸入流
InputStream is=new FileInputStream(myFile);
String a[] = myFileFileName.split("\\.");
System.out.println("上傳文件名:"+a[0]+"上傳文件類型:"+a[1]);
//設置目標文件
File toFile=new File(filePath,「可以自己取"+"."+a[1]);
//創建一個輸出流
OutputStream os=new FileOutputStream(toFile);
// OutputStream bos = new FileOutputStream(filePath);//建立一個上傳文件的輸出流
int bytesRead = 0;
byte[] buffer = new byte[8192];
while ( (bytesRead = is.read(buffer, 0, 8192)) != -1) {
os.write(buffer, 0, bytesRead);//將文件寫入伺服器
}
❼ 如何用ssh向遠程伺服器上傳安裝文件,widows下的ssh,linux下的遠程伺服器。
安裝SSHSecure
然後會有兩個操作平台
SSHSecureFileTransferClient和SSHSecureShellClient
顧名思義一個是用來FTP的,一個是遠程命令行客戶端
用SSHSecureFileTransferClient連接你的遠程伺服器,寫上IP和登錄用戶名,一般是root,然後輸入密碼就可以連接上了,連上以後一邊是你本地文件,另一邊是你的遠程伺服器的目錄結構,然後兩邊隨便拖拽就可以上傳下載了,給你發個連接上以後的圖片
❽ ssh 多文件上傳,怎麼實現
多附件struts 1.x,以下代碼由agatezone提供。
1.Jsp要用javascript
2.form必須enctype="multipart/form-data"
3.action要用form.getMultipartRequestHandler()獲取文件並存儲
struts2 更簡單,google之。
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>struts1.x upload example</title>
<script type="text/javascript">
function addFileField() {
input_filesCount = document.getElementById("filesCount");
input_filesCount.setAttribute("value", parseInt(input_filesCount.getAttribute("value")) + 1)
div_files = document.getElementById("files");
br = document.createElement("br");
file = document.createElement("input");
text = document.createTextNode("File " + input_filesCount.getAttribute("value") + " : ");
file.setAttribute("type", "file");
file.setAttribute("name", "file" + input_filesCount.getAttribute("value"));
div_files.appendChild(text);
div_files.appendChild(file);
div_files.appendChild(br);
}
</script>
</head>
<body>
<form action="upload.do" method="post" enctype="multipart/form-data">
<input id="filesCount" type="hidden" name="filesCount" value="1" />
<div id="files">
File 1 :
<input type="file" name="file1" />
<br />
</div>
<input type="button" onclick="javascript:addFileField();"
value="add a file" />
<br />
<input type="submit" />
</form>
</body>
</html>
---------------------------------------
package cn.agatezone.example.struts1x.upload;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Enumeration;
import java.util.Hashtable;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.upload.FormFile;
public class UploadAction extends Action {
@SuppressWarnings("unchecked")
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws Exception {
String dirPath = getServlet().getServletContext().getRealPath("/") + "upload";
Hashtable fileh = form.getMultipartRequestHandler().getFileElements();
for (Enumeration e = fileh.keys(); e.hasMoreElements();) {
String key = (String) e.nextElement();
try {
FormFile formfile = (FormFile) fileh.get(key);
String filename = formfile.getFileName().trim(); // 文件名
/*
* @注意!!!
* 這里我沒有處理中文,但是如果想要中文無問題,
* 可以設置tomcat的server.xml中的URIEncoding="UTF-8"
*
* 但是,要是不設置的話可以自己用代碼解決問題!
* 為了簡單明了,本例只作為struts1.x上傳部分展示。
*/
if (!"".equals(filename)) {
// 不同的瀏覽器傳上的文件名可能有區別,有的是全路徑的
// 在這里保存文件
InputStream ins = formfile.getInputStream();
OutputStream os = new FileOutputStream(dirPath + File.separatorChar + filename);
int bytesRead = 0;
byte[] buffer = new byte[8192];
while ((bytesRead = ins.read(buffer, 0, 8192)) != -1) {
os.write(buffer, 0, bytesRead);
}
os.close();
ins.close();
}
} catch (Exception ex) {
System.out.println("出錯了!\n" + ex);
}
}
return mapping.findForward("success");
}
}
---------------------------------------------------------
銳志陳鵬 專注Java/.Net培訓
銳志技術社區:http://www.witshare.org/bbs/
❾ 誰有SSH上傳下載文件的代碼
上傳:
package com.wb.ekeng.web.action.file;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessages;
import com.wb.ekeng.ebo.BO_File;
import com.wb.ekeng.info.INFO_Admin;
import com.wb.ekeng.info.INFO_File;
import com.wb.ekeng.web.action.BaseAction;
import com.wb.ekeng.web.filemanage.File;
import com.wb.ekeng.web.filemanage.SmartUpload;
import com.wb.ekeng.web.util.Convertor;
public class ACT_AddFile extends BaseAction {
public ACT_AddFile() {
super();
}
public ActionForward doExcute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response, ActionMessages errors) throws Exception {
//文件保存路徑
String strSavePath ="/upload/file/";
//允許上傳的文件類型
String strAllowExt ="jpg,jpeg,gif,bmp,txt,java";
//允許上傳最大位元組數
int maxSize =1048576;
//上傳文件
SmartUpload upload=new SmartUpload();
upload.initialize(this.getServlet().getServletConfig(), request, response);
upload.upload("UTF-8");
//獲取文件
String[] allowExtList =strAllowExt.split(",");
File fileBuffer =upload.getFiles().getFile(0);
if(fileBuffer.isMissing()){
throw new Exception("error.act.act_addfile.error3");
}
HttpSession session=request.getSession();
INFO_Admin loginAdmin=(INFO_Admin) session.getAttribute("loginadmin");
Long lAdminId=loginAdmin.getId();
String strName=upload.getRequest().getParameter("name");
//如果遇見上傳中文文件出現亂碼問題,上一句可以改成這樣(其他語句參照這): String strName=new String(upload.getRequest().getParameter("name").getBytes(),"UTF-8");
String strNeedPoint=upload.getRequest().getParameter("needpoint");
String strType=upload.getRequest().getParameter("type");
String strDes=upload.getRequest().getParameter("des");
Integer iNeedPoint=null;
//驗證參數
if(strName==null||strNeedPoint==null||strType==null||strDes==null){
throw new Exception("error.common.badrequest");
}
this.doValidate(errors,INFO_File.validateName(strName));
this.doValidate(errors,INFO_File.validateNeedPoint(strNeedPoint));
this.doValidate(errors,INFO_File.validateType(strType));
this.doValidate(errors,INFO_File.validateDes(strDes));
//驗證文件大小
int FileSize=fileBuffer.getSize();
if(FileSize>maxSize){
this.doValidate(errors,"error.act.act_addfile.error2");
}
//驗證文件類型
String strFileExt =fileBuffer.getFileExt();
boolean flag =false;
for(int i=0;i<allowExtList.length;i++) {
if(allowExtList[i].toLowerCase().equals(strFileExt.toLowerCase())){
//找到了匹配的後綴
flag=true;
}
}
if(strFileExt.equals("") || flag ==false){
this.doValidate(errors,"error.act.act_addfile.error1");
}
if(!errors.isEmpty()){
System.out.println(errors.toString());
return null;
}
//參數轉換
strName =Convertor.convertHalfToFull(strName);
iNeedPoint=new Integer(strNeedPoint);
Integer iFileSize=Integer.valueOf(FileSize);
//構造saveName
String strSaveName=lAdminId+"_"+BO_File.getNowString()+"."+upload.getFiles().getFile(0).getFileExt();
fileBuffer.saveAs(strSavePath + strSaveName);
//提交數據
BO_File boFile=new BO_File();
boFile.addFile(strName,strType,strDes,strSaveName,iNeedPoint,lAdminId,iFileSize);
return new ActionForward("/admin/main/download/admindownload.do",true);
}
}
下載:
package com.wb.ekeng.web.action.file;
import java.util.ArrayList;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessages;
import com.wb.ekeng.web.action.BaseAction;
import com.wb.ekeng.ebo.BO_File;
import com.wb.ekeng.info.INFO_File;
import com.wb.ekeng.info.INFO_User;
import com.wb.ekeng.web.filemanage.SmartUpload;
/**
* 備注:
* 文件下載Action
* 輸入:
* String fileid
* String userid
* 輸出:
*/
public class ACT_Download extends BaseAction {
public ACT_Download() {
super();
}
public ActionForward doExcute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response, ActionMessages errors) throws Exception {
HttpSession session =request.getSession();
//獲取參數
Long lFileId=null;
String fileId =request.getParameter("fileid");
INFO_User infoUser=(INFO_User)session.getAttribute("loginuser");
//驗證參數
if(fileId==null || infoUser.getId() ==null){
throw new Exception("error.common.badrequest");
}
lFileId=new Long(fileId);
BO_File boFile=new BO_File();
INFO_File infoFile =null;
//判斷用戶是否為第一次下載
接收存儲下載資源Id的session,然後判斷要下載的資源Id是否沒存在於當前登錄的下載頁表中(即是否是第一次下載),如果是則調用下載扣除積分方法,並把這個資源的Id存入列表中。如果不是,則把標記位置false,直接下載資源,不調用扣除積分的方法。
boolean isFirstDownLoad =true;
ArrayList downFileList =(ArrayList)session.getAttribute("downfilelist");
for(int index =0; index <downFileList.size(); index ++){
Long lFileIdBuffer =(Long)downFileList.get(index);
if(lFileIdBuffer.longValue() ==lFileId.longValue()){
isFirstDownLoad =false;
break;
}
}
if(isFirstDownLoad){
infoFile=boFile.download(lFileId,infoUser.getId());
downFileList.add(lFileId);
}else{
infoFile=boFile.getFile(lFileId);
}
(下面就是有關下載的代碼)
//新建一個SmartUpload對象
SmartUpload su = new SmartUpload();
//初始化
su.initialize(this.getServlet().getServletConfig(), request, response);
//設定contentDisposition為null以禁止瀏覽器自動打開文件,
//保證點擊鏈接後是下載文件。若不設定,則下載的文件擴展名為
//doc時,瀏覽器將自動用word打開它。擴展名為pdf時,
//瀏覽器將用acrobat打開。
su.setContentDisposition(null);
//下載文件
su.downloadFile("/upload/file/"+infoFile.getSaveName());
return mapping.findForward("success");
}}
❿ 怎麼用ssh從windows上傳文件到linux
首先你得選好SSH的工具,本人用Xshell,連通伺服器後直接點擊FTP就可以進行上傳了