近期遇到的和FTP有關的問題

2021-09-02 02:17:24 字數 4439 閱讀 3523

首先在ftp的目錄中建立乙個目錄,然後設定許可權為777 $ sudo mkdir /var/ftp/write $ sudo chmod -r 777 /var/ftp/write 然後修改vsftp的配置檔案/etc/vsftpd.conf檔案 在最後新增上 local_root=/var/ftp 儲存,然後殺死vsftpd程序,然後重啟vsftpd伺服器程式。 試試看,將檔案上傳到write目錄,這個時候可以正常的上傳檔案了。
chgrp  使用者名稱    檔名  -rchown 使用者名稱   檔名  -r-r表示遞迴目錄下所有檔案以上部分已驗證下面是ftp相關的工具類

public class ftputils 

}/**

* 獲取ftputils物件例項

* * @return ftputils物件例項

*/public synchronized static ftputils getinstance()

return ftputils;

}/**

* 初始化ftp伺服器連線屬性

*/public void initconfig() catch (ioexception e) finally catch (ioexception e) }}

}/**

* 連線(配置通用連線屬性)至伺服器

* * @param servername

* 伺服器名稱

* @param remotepath

* 當前訪問目錄

* @returntrue:連線成功

*false:連線失敗

*/public static boolean connecttotheserver(string servername, string remotepath)

// 設定檔案操作目錄

result = ftpclient.changeworkingdirectory(remotepath);

// 如果設定操作目錄失敗,則路徑可能不存在,執行建立路徑介面在設定操作目錄

if (!result)

// 設定檔案型別,二進位制

result = ftpclient.setfiletype(ftpclient.binary_file_type);

// 設定緩衝區大小

ftpclient.setbuffersize(3072);

// 設定字元編碼

ftpclient.setcontrolencoding("utf-8");

} catch (ioexception e)

return result;

}/**

* 根據路徑建立資料夾 ftp不支援多級資料夾建立,所以迴圈建立

* * @param storepath

* @return

*/public static boolean makedirectory(string storepath) else

boolean b = ftpclient.makedirectory(path);

if (!b)

}} catch (ioexception e)

return true;

}/**

* 上傳檔案至ftp伺服器

* * @param servername

* 伺服器名稱

* @param storepath

* 上傳檔案儲存路徑

* @param filename

* 上傳檔案儲存名稱

* @param is

* 上傳檔案輸入流

* @returntrue:上傳成功

*false:上傳失敗

*/public static boolean storefile(string servername, string storepath, string filename, inputstream is)

} catch (ioexception e) finally catch (ioexception e)

}// 登出伺服器並斷開連線

ftputils.logout();

}return result;

}/**

* * @param servername

* 伺服器名稱

* @param remotepath

* @param filename

* @returninputstream:檔案輸入流

*/public static inputstream retrievefile(string servername, string remotepath, string filename)

} catch (ioexception e)

return is;

}/**

* 刪除ftp伺服器檔案

* * @param servername

* 伺服器名稱

* @param remotepath

* 當前訪問目錄

* @param filename

* 檔案儲存名稱

* @returntrue:刪除成功

*false:刪除失敗

*/public static boolean deletefile(string servername, string remotepath, string filename) catch (ioexception e) finally

}return result;

}/**

* 檢測ftp伺服器檔案是否存在

* * @param servername

* 伺服器名稱

* @param remotepath

* 檢測檔案儲存路徑

* @param filename

* 檢測檔案儲存名稱

* @returntrue:檔案存在

*false:檔案不存在

*/public boolean checkfile(string servername, string remotepath, string filename) }}

} catch (ioexception e) finally

return result;

}/**

* 登出伺服器並斷開連線

* * @param ftp

* ftpclient物件例項

* @returntrue:操作成功

*false:操作失敗

*/public boolean logout() catch (ioexception e)

}if (null != ftpclient) catch (ioexception e) finally catch (ioexception e) }}

}return result;

}public static byte readinputstream(inputstream inputstream) throws ioexception

bos.close();

return bos.tobytearray();

}/**

* 讀取html內容內容

* * @param path

* 需要讀取的檔案位址

* @return

* @throws ioexception

*/public string getbodystring(string path) throws ioexception catch (exception e)

return data;

}/**

* 返回ftp目錄下的檔案列表

* @param ftpdirectory

* @return

*/public static listgetfilenamelist(string servername,string ftpdirectory)

} catch (exception e)

return list; }}

紀錄近期遇到的問題

1.區域性變數必須初始化。在objective c中成員變數會被自動初始化,根據變數型別自動被置為0,nil,no等。但是局不變數需要手動初始化,這個類似於c c 語言。2.self和super的區別。self表示的是只想當前物件的指標,而super並不是指向父類的指標,而只是乙個編譯器的指令符號,...

近期海投筆試遇到的問題(1)

乙個演算法執行所耗費的時間,從理論上是不能算出來的,必須上機執行測試才能知道。但我們不可能也沒有必要對每個演算法都上機測試,只需知道哪個演算法花費的時間多,哪個演算法花費的時間少就可以了。並且乙個演算法花費的時間與演算法中語句的執行次數成正比例,哪個演算法中語句執行次數多,它花費時間就多。乙個演算法...

有關vue引入ueditor遇到的問題

做個記錄 引入 之前專案用的vue cli3指令碼架建立的專案,然後引入ueditor的時候很多資源找不到路徑,好多地方報錯,後來重新用webpack重構了專案,ueditor的顯示問題就自動解決了。2 在main.js裡引入 import static ue ueditor.config.js i...