首先在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...