第一次接触服务器的自己就是一个小白鼠,自然会遇到很多问题:
一、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就可以访问了