1. 程式人生 > >nginx 安裝到Java程式碼上傳圖片利用ftp過程遇到的問題總結

nginx 安裝到Java程式碼上傳圖片利用ftp過程遇到的問題總結

      第一次接觸伺服器的自己就是一個小白鼠,自然會遇到很多問題:

     一、ftp連線不上

   1.按照 https://blog.csdn.net/weixin_37525569/article/details/80839067 這篇部落格寫的步驟安裝ftp,可以直接連線上。

  二、上傳的圖片不在想要的路徑裡面

我的上傳圖片路徑是:/home/ftpuser/www/images/但是發現上傳的圖片老在ftpuser下面。

        1.這個時候我發現我的資料夾沒有許可權

          

          下面普及一下linux下的資料夾許可權問題:

      1.d 表示資料夾,rwx表示許可權  你看一共三組 第一組是root許可權表示最高許可權對這個資料夾的操作許可權 第二組是普通使用者             第三組是其他三,ftpuser是普通使用者。

      2. 所以許可權對應的是第二組的rwx ,結果全是---,表示什麼許可權也沒有。

      3. -表示少了什麼:  -wx,表示少了r許可權,就是read 讀的許可權。r-x,少了w,表示少了write 寫許可權。

      4. 所以要為我建立的資料夾賦予許可權:

            命令列:chmod 777 /home/ftpuser只是把 /home/ftpuser目錄的許可權設定為rwxrwxrwx

             chmod -R 777 /home/ftpuser表示將整個/home/ftpuser目錄與其中的檔案和子目錄的許可權都設定為rwxrwxrwx

            -rw——- (600) 只有所有者才有讀和寫的許可權


            -rw-r–r– (644) 只有所有者才有讀和寫的許可權,組群和其他人只有讀的許可權
            -rwx—— (700) 只有所有者才有讀,寫,執行的許可權
            -rwxr-xr-x (755) 只有所有者才有讀,寫,執行的許可權,組群和其他人只有讀和執行的許可權
            -rwx–x–x (711) 只有所有者才有讀,寫,執行的許可權,組群和其他人只有執行的許可權
            -rw-rw-rw- (666) 每個人都有讀寫的許可權

            -rwxrwxrwx (777) 每個人都有讀寫和執行的許可權

              這個時候就可以把圖片放到正常的路徑下面了。

三、上傳的圖片為0M。

         這個問題困擾了我很長時間:

        1.首先在看SELINUX=disabled,不是 修改/etc/selinux/config

        2.在Java程式上加入兩行程式碼

ftpClient.enterLocalPassiveMode();//主動模式
ftpClient.setFileType(FTP.BINARY_FILE_TYPE);//二進位制檔案

   這兩行程式碼怎麼 的位置必須放在設定圖片上傳位置的下面,下面是個小demo

@Test
public void testFtpClient(){
//建立Ftp物件
FTPClient ftpClient=new FTPClient();
    //建立ftp連線
try {
ftpClient.connect("116.19X.XXX.XXX", 21);
        //登入ftp連線,用使用者名稱和密碼
ftpClient.login("ftpuser", "ftpuser");
        //上傳檔案
        //從本地讀取檔案
FileInputStream fileInputStream = new FileInputStream(new File("D:\\1.jpg"));
        //設定上傳到伺服器的位置
ftpClient.changeWorkingDirectory("/home/ftpuser/www/images/");
        ftpClient.enterLocalPassiveMode();
        ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
        //1.伺服器端檔名2.上傳檔案的inputStream
ftpClient.storeFile("lss.jpg", fileInputStream);
        fileInputStream.close();
        //關閉連線
ftpClient.logout();
    }catch (Exception e){
e.printStackTrace();
    }
}

  (1)因為為port連線所以必須設定為主動模式。

  (2)設定檔案型別為二進位制檔案

四,圖片上傳上去無法訪問

 1.首先在nginx下的nginx.config下面看配置檔案是否有配置的路徑,按照綠色的配置

2.在html資料夾下加一個images資料夾


這個時候重新啟動nginx就可以訪問了