ftp絕對路徑
Ⅰ ftp文件路徑問題
不是太明白你所說的「路徑」是什麼意思?是ftp路徑?還是網站訪問路徑?
如果是ftp路徑,你的截圖裡面的路徑就是頂級目錄/1.txt。
如果你是問的網站路徑,請看下文:
你在FlashFXP軟體中嘗試雙擊一下「上級目錄」,看看是否能訪問上級目錄。如果不能訪問上級目錄,那麼當前目錄就是頂級目錄。但是網站的默認指向目錄一般不是頂級目錄,一般是頂級目錄下的某個文件夾,比如「web」文件夾,或者如上圖的「1」文件夾,網站的默認指向目錄又稱為「網站根目錄」,所以你要先確定你的「網站根目錄」是哪一個文件夾。可以咨詢你的空間商,問一下網站的默認指向目錄是什麼。只有確定了網站根目錄,才能知道文件的路徑!
按照你的截圖,當前的目錄可能是頂級目錄,那麼1文件夾可能是網站的根目錄(用數字命名網站的根目錄這種情況非常罕見),當然也不排除當前的頂級目錄就是網站的根目錄。
一、如果1文件夾是根目錄,那麼你的1.txt是無法用通過瀏覽器(網站)訪問的,因為1.txt在根目錄之外;
二、如果當前文件夾是根目錄,那麼直接在瀏覽器中輸入「你的域名地址/1.txt」一般就可以訪問這個文件了。。。
Ⅱ ftp圖片路徑怎麼看
http://localhost/images/XXX.jpg
localhost 可以替換為你的網站域名
Ⅲ java獲取ftp文件路徑怎麼寫
package com.weixin.util;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.io.RandomAccessFile;
import org.apache.commons.net.PrintCommandListener;
import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
import org.apache.commons.net.ftp.FTPReply;
import com.weixin.constant.DownloadStatus;
import com.weixin.constant.UploadStatus;
/**
* 支持斷點續傳的FTP實用類
* @version 0.1 實現基本斷點上傳下載
* @version 0.2 實現上傳下載進度匯報
* @version 0.3 實現中文目錄創建及中文文件創建,添加對於中文的支持
*/
public class ContinueFTP {
public FTPClient ftpClient = new FTPClient();
public ContinueFTP(){
//設置將過程中使用到的命令輸出到控制台
this.ftpClient.addProtocolCommandListener(new PrintCommandListener(new PrintWriter(System.out)));
}
/**
* 連接到FTP伺服器
* @param hostname 主機名
* @param port 埠
* @param username 用戶名
* @param password 密碼
* @return 是否連接成功
* @throws IOException
*/
public boolean connect(String hostname,int port,String username,String password) throws IOException{
ftpClient.connect(hostname, port);
ftpClient.setControlEncoding("GBK");
if(FTPReply.isPositiveCompletion(ftpClient.getReplyCode())){
if(ftpClient.login(username, password)){
return true;
}
}
disconnect();
return false;
}
/**
* 從FTP伺服器上下載文件,支持斷點續傳,上傳百分比匯報
* @param remote 遠程文件路徑
* @param local 本地文件路徑
* @return 上傳的狀態
* @throws IOException
*/
public DownloadStatus download(String remote,String local) throws IOException{
//設置被動模式
ftpClient.enterLocalPassiveMode();
//設置以二進制方式傳輸
ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
DownloadStatus result;
//檢查遠程文件是否存在
FTPFile[] files = ftpClient.listFiles(new String(remote.getBytes("GBK"),"iso-8859-1"));
if(files.length != 1){
System.out.println("遠程文件不存在");
return DownloadStatus.Remote_File_Noexist;
}
long lRemoteSize = files[0].getSize();
File f = new File(local);
//本地存在文件,進行斷點下載
if(f.exists()){
long localSize = f.length();
//判斷本地文件大小是否大於遠程文件大小
if(localSize >= lRemoteSize){
System.out.println("本地文件大於遠程文件,下載中止");
return DownloadStatus.Local_Bigger_Remote;
}
//進行斷點續傳,並記錄狀態
FileOutputStream out = new FileOutputStream(f,true);
ftpClient.setRestartOffset(localSize);
InputStream in = ftpClient.retrieveFileStream(new String(remote.getBytes("GBK"),"iso-8859-1"));
byte[] bytes = new byte[1024];
long step = lRemoteSize /100;
long process=localSize /step;
int c;
while((c = in.read(bytes))!= -1){
out.write(bytes,0,c);
localSize+=c;
long nowProcess = localSize /step;
if(nowProcess > process){
process = nowProcess;
if(process % 10 == 0)
System.out.println("下載進度:"+process);
//TODO 更新文件下載進度,值存放在process變數中
}
}
in.close();
out.close();
boolean isDo = ftpClient.completePendingCommand();
if(isDo){
result = DownloadStatus.Download_From_Break_Success;
}else {
result = DownloadStatus.Download_From_Break_Failed;
}
}else {
OutputStream out = new FileOutputStream(f);
InputStream in= ftpClient.retrieveFileStream(new String(remote.getBytes("GBK"),"iso-8859-1"));
byte[] bytes = new byte[1024];
long step = lRemoteSize /100;
long process=0;
long localSize = 0L;
int c;
while((c = in.read(bytes))!= -1){
out.write(bytes, 0, c);
localSize+=c;
long nowProcess = localSize /step;
if(nowProcess > process){
process = nowProcess;
if(process % 10 == 0)
System.out.println("下載進度:"+process);
//TODO 更新文件下載進度,值存放在process變數中
}
}
in.close();
out.close();
boolean upNewStatus = ftpClient.completePendingCommand();
if(upNewStatus){
result = DownloadStatus.Download_New_Success;
}else {
result = DownloadStatus.Download_New_Failed;
}
}
return result;
}
/**
* 上傳文件到FTP伺服器,支持斷點續傳
* @param local 本地文件名稱,絕對路徑
* @param remote 遠程文件路徑,使用/home/directory1/subdirectory/file.ext 按照Linux上的路徑指定方式,支持多級目錄嵌套,支持遞歸創建不存在的目錄結構
* @return 上傳結果
* @throws IOException
*/
public UploadStatus upload(String local,String remote) throws IOException{
//設置PassiveMode傳輸
ftpClient.enterLocalPassiveMode();
//設置以二進制流的方式傳輸
ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
ftpClient.setControlEncoding("GBK");
UploadStatus result;
//對遠程目錄的處理
String remoteFileName = remote;
if(remote.contains("/")){
remoteFileName = remote.substring(remote.lastIndexOf("/")+1);
//創建伺服器遠程目錄結構,創建失敗直接返回
if(CreateDirecroty(remote, ftpClient)==UploadStatus.Create_Directory_Fail){
return UploadStatus.Create_Directory_Fail;
}
}
//檢查遠程是否存在文件
FTPFile[] files = ftpClient.listFiles(new String(remoteFileName.getBytes("GBK"),"iso-8859-1"));
if(files.length == 1){
long remoteSize = files[0].getSize();
File f = new File(local);
long localSize = f.length();
if(remoteSize==localSize){
return UploadStatus.File_Exits;
}else if(remoteSize > localSize){
return UploadStatus.Remote_Bigger_Local;
}
//嘗試移動文件內讀取指針,實現斷點續傳
result = uploadFile(remoteFileName, f, ftpClient, remoteSize);
//如果斷點續傳沒有成功,則刪除伺服器上文件,重新上傳
if(result == UploadStatus.Upload_From_Break_Failed){
if(!ftpClient.deleteFile(remoteFileName)){
return UploadStatus.Delete_Remote_Faild;
}
result = uploadFile(remoteFileName, f, ftpClient, 0);
}
}else {
result = uploadFile(remoteFileName, new File(local), ftpClient, 0);
}
return result;
}
/**
* 斷開與遠程伺服器的連接
* @throws IOException
*/
public void disconnect() throws IOException{
if(ftpClient.isConnected()){
ftpClient.disconnect();
}
}
/**
* 遞歸創建遠程伺服器目錄
* @param remote 遠程伺服器文件絕對路徑
* @param ftpClient FTPClient對象
* @return 目錄創建是否成功
* @throws IOException
*/
public UploadStatus CreateDirecroty(String remote,FTPClient ftpClient) throws IOException{
UploadStatus status = UploadStatus.Create_Directory_Success;
String directory = remote.substring(0,remote.lastIndexOf("/")+1);
if(!directory.equalsIgnoreCase("/")&&!ftpClient.changeWorkingDirectory(new String(directory.getBytes("GBK"),"iso-8859-1"))){
//如果遠程目錄不存在,則遞歸創建遠程伺服器目錄
int start=0;
int end = 0;
if(directory.startsWith("/")){
start = 1;
}else{
start = 0;
}
end = directory.indexOf("/",start);
while(true){
String subDirectory = new String(remote.substring(start,end).getBytes("GBK"),"iso-8859-1");
if(!ftpClient.changeWorkingDirectory(subDirectory)){
if(ftpClient.makeDirectory(subDirectory)){
ftpClient.changeWorkingDirectory(subDirectory);
}else {
System.out.println("創建目錄失敗");
return UploadStatus.Create_Directory_Fail;
}
}
start = end + 1;
end = directory.indexOf("/",start);
//檢查所有目錄是否創建完畢
if(end <= start){
break;
}
}
}
return status;
}
/**
* 上傳文件到伺服器,新上傳和斷點續傳
* @param remoteFile 遠程文件名,在上傳之前已經將伺服器工作目錄做了改變
* @param localFile 本地文件File句柄,絕對路徑
* @param processStep 需要顯示的處理進度步進值
* @param ftpClient FTPClient引用
* @return
* @throws IOException
*/
public UploadStatus uploadFile(String remoteFile,File localFile,FTPClient ftpClient,long remoteSize) throws IOException{
UploadStatus status;
//顯示進度的上傳
long step = localFile.length() / 100;
long process = 0;
long localreadbytes = 0L;
RandomAccessFile raf = new RandomAccessFile(localFile,"r");
OutputStream out = ftpClient.appendFileStream(new String(remoteFile.getBytes("GBK"),"iso-8859-1"));
//斷點續傳
if(remoteSize>0){
ftpClient.setRestartOffset(remoteSize);
process = remoteSize /step;
raf.seek(remoteSize);
localreadbytes = remoteSize;
}
byte[] bytes = new byte[1024];
int c;
while((c = raf.read(bytes))!= -1){
out.write(bytes,0,c);
localreadbytes+=c;
if(localreadbytes / step != process){
process = localreadbytes / step;
System.out.println("上傳進度:" + process);
//TODO 匯報上傳狀態
}
}
out.flush();
raf.close();
out.close();
boolean result =ftpClient.completePendingCommand();
if(remoteSize > 0){
status = result?UploadStatus.Upload_From_Break_Success:UploadStatus.Upload_From_Break_Failed;
}else {
status = result?UploadStatus.Upload_New_File_Success:UploadStatus.Upload_New_File_Failed;
}
return status;
}
public static void main(String[] args) {
ContinueFTP myFtp = new ContinueFTP();
try {
System.err.println(myFtp.connect("10.10.6.236", 21, "5", "jieyan"));
// myFtp.ftpClient.makeDirectory(new String("歌曲".getBytes("GBK"),"iso-8859-1"));
// myFtp.ftpClient.changeWorkingDirectory(new String("歌曲".getBytes("GBK"),"iso-8859-1"));
// myFtp.ftpClient.makeDirectory(new String("愛你等於愛自己".getBytes("GBK"),"iso-8859-1"));
// System.out.println(myFtp.upload("E:\\yw.flv", "/yw.flv",5));
// System.out.println(myFtp.upload("E:\\愛你等於愛自己.mp4","/愛你等於愛自己.mp4"));
//System.out.println(myFtp.download("/愛你等於愛自己.mp4", "E:\\愛你等於愛自己.mp4"));
myFtp.disconnect();
} catch (IOException e) {
System.out.println("連接FTP出錯:"+e.getMessage());
}
}
}
Ⅳ 如何得到FTP目錄的物理路徑
首先分析一下同學們提出的普遍問題,即為什麼上課聽得懂,而課下不會作?我作為學理科的教師有這樣的切身感覺:比如讀某一篇文學作品,文章中對自然景色的描寫,對人物內心活動的描寫,都寫得令人叫絕,而自己也知道是如此,但若讓自己提起筆來寫,未必或者說就不能寫出人家的水平來。聽別人說話,看別人文章,聽懂看懂絕對沒有問題,但要自己寫出來變成自己的東西就不那麼容易了。又比如小孩會說的東西,要讓他寫出來,就必須經過反復寫的練習才能達到那一步。因而要由聽懂變成會作,就要在聽懂的基礎上,多多練習,方能掌握其中的規律和奧妙,真正變成自己的東西,這也正是學習高中物理應該下功夫的地方。功夫如何下,在學習過程中應該達到哪些具體要求,應該注意哪些問題,下面我們分幾個層次來具體分析。
Ⅳ java ftp可以直接轉絕對路徑么 D:\\FT\GM
ftp伺服器的目錄不是你來設置的,你只相當於是一個訪問ftp的客戶端,所以你這里連接上ftp伺服器後到了ftp的根目錄,你就是要切換也只能寫/XXXX,不可以寫絕對路徑。
Ⅵ 怎樣知道FTP文件夾在伺服器上的絕對路徑
正常途徑沒法知道,除非黑客。
Ⅶ ftp如何直接連接到已有的絕對路徑
方法/步驟
1
第一步,打開IIS,步驟如下:
點擊開始--管理工具--IIS管理器
或者
開始--控制面板--管理工具--IIS管理器
2
第二步,打開IIS後,在右邊選擇FTP並展開,找到找到默認FTP,我們這里就直接用這個默認FTP來設置,當然這個名稱可以改,但這個名稱不是FTP的用戶名;
3
第三步,我們打開默認FTP的屬性面板;
4
第四步,我們點到「FTP站點」選項卡,裡面可以設置FTP的
描述(非帳號)
IP地址(如果是多IP可以指定用哪個IP來鏈接)
TCP埠(鏈接FTP的埠號)
5
第五步,我們進入到「安全帳戶」選項卡,這里要把「允許匿名鏈接」取消,不然人家就直接輸入IP就可以鏈接了;
6
第六步,我們進入到"消息"選項卡,這個裡面一般我們不用設置任何內容,這里就是FTP鏈接時我們看到的一些信息,有需要的可以設置,一般跳過;
7
第七步,我們進入到"主目錄"選項卡,
"本地路徑"我們填上我們需要用FTP訪問的目錄,
"目錄樣式",我們使用默認的就好了
8
第八步,我們進入到"目錄安全性"選項卡,這個我們一般也不用設置,除非你只需要哪個IP可以連到這FTP,那麼可以在這里設置。直接填IP,然後選對應的功能就行了。
9
第九步,我們需要設置FTP訪問的帳號密碼了,右擊默認FTP--許可權--打開許可權設置面板;
10
第十步,打開許可權設置面板後,我們在這里添加一個帳號,這里的帳號要在windows的帳號管理先添加,然後這里才可以添加。給帳號如下許可權就可以了,不建議直接用超級管理員,可以新建一個帳號。這里的帳號就是FTP訪問的帳號,到此就全部設置完成了。
Ⅷ 文件上傳到ftp伺服器的路徑問題
把你要傳的東西保存到桌面,打開ftp左面是桌面,電腦圖標的是你的桌面,右面是ftp像球一樣的東西。在左側桌面找到剛才你保存桌面的東西,然後右鍵傳送。