安卓开发笔记——Ubuntu上搭建FTP服务器,并实现FTP文件上传

一、安装并配置vsftpd

步骤为:

1.sudo apt-get install vsftpd //安装vsftpd
2.cd /etc/ //备份默认的配置文件
3.sudo cp vsftpd.conf vsftpd.conf.orig
4.sudo vim vsftpd.conf //编辑FTP的配置文件

FTP的配置文件为:

#匿名登录用户免密登录
anonymous_enable=YES
anon_mkdir_write_enable=NO
no_anon_password=YES

#上传文件更改用户名
chown_uploads=YES
chown_username=pi

#上传文件夹失败时删除文件
delete_failed_uploads=YES

#本地用户能够登录和上传文件,指定登录的文件路径
local_enable=YES
local_root=/srv/ftp/
allow_writeable_chroot=YES
anon_root=/srv/ftp/
write_enable=YES
local_umask=022

#设置FTP监听的端口
listen=YES
listen_ipv6=NO
listen_port=21

#设置vsftpd的日志以及登录的提示信息
ftpd_banner=Welcome to LingYun loT system Lab.FTP service.
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log

#是否限制本地所有用户切换根目录的权限,“YES”为开启权限(登录后的用户不能访问FTP根目录之外的目录)
chroot_local_user=YES
pam_service_name=vsftpd

#userlist为一个名单,“YES”表示userlist中的用户才能登录FTP
userlist_enable=YES

#禁止userlist中的用户登录,“NO”表示不启用此功能
userlist_deny=NO

#指定userlist文件
userlist_file=/etc/vsftpd.userlist

#本地用户登录的配置文件夹,能够分别指定每个用户的登录路径
user_config_dir=/etc/vsftpd/userconfig

二、配置本地用户登录

1.创建vsftpd的登录用户并且设置密码
(1)sudo useradd -s /bin/bash pi -m //创建用户
(2)sudo passwd pi
(3)su pi //设置密码
(4)exit //退出

2.创建FTP服务器匿名用户以及本地用户的默认工作根路径和测试文件
(1)sudo mkdir -p /srv/ftp/
(2)sudo chown pi.pi /srv/ftp/ //将FTP跟目录的所有者权限给用户pi
(3)sudo chmod 755 /srv/ftp/ //将文件权限修改为755
(4)sudo touch /srv/ftp/test_file.txt

关于文件权限:
755:rwxr-xr-x
777:rwxrwxrwx

3.创建用户pi的登录根路径和测试文件:
(1)sudo mkdir -p /srv/pi
(2)sudo touch /srv/pi/pi_test.txt
(3)sudo chown -R pi.pi /srv/pi/

4.创建vsftpd.userlist,该文件用来保存允许登录的用户:
(1)sudo vim vsftpd.userlist
例如:
anonymous
pi

5.修改配置pi用户的登录文件路径为/srv/pi/,与匿名用户的工作路径区分开(pi用户的工作路径可以修改也可以不用修改)

(1)sudo mkdir -p /etc/vsftpd/userconfig
(2)cd /etc/vsftpd/userconfig/
(3)sudo vim pi
例如:local_root=/srv/pi/

三、测试vsftp服务

1.重启vsftpd服务:sudo service vsftpd restart
在这里插入图片描述
2.输入命令:sudo netstat -tlnp
在这里插入图片描述
如果vsftpd未运行,则去检查vsftpd的配置,看是否配置出现问题。

四、运行测试

在浏览器或者我的电脑地址栏输入:ftp://Linux+系统IP,例如:ftp://192.168.XXX.XXX
显示如下界面则说明FTP服务器配置成功:
在这里插入图片描述
在这里插入图片描述

五、安装FlashFXP,实现文件的上传

1.在官网上下载软件并安装,安装成功后打开右上角此图标:

在这里插入图片描述
2.在弹出的界面填写地址域、用户名称、密码:
在这里插入图片描述
3.观察右下角的连接状态信息,如图所示则表示连接成功:在这里插入图片描述
4.点击此图标:
在这里插入图片描述
5.找到需要上传的文件或者文件夹,直接拖动到右边即可实现文件的上传:在这里插入图片描述
注:在配置ftp服务器时注意ufw和iptables,笔者刚开始由于开启了iptables,出现了下面这种情况:
在这里插入图片描述

iptables

iptables是与最新的 3.5 版本 Linux 内核集成的 IP 信息包过滤系统,如果 Linux 系统连接到因特网或LAN、服务器或连接 LAN 和因特网的代理服务器,则该系统有利于在 Linux 系统上更好地控制 IP信息包过滤和防火墙配置。netfilter/iptables(简称iptables)组成Linux平台下的包过滤防火墙,与大多数的Linux软件一样,这个包过滤防火墙是免费的,它工作在网络层,针对TCP/IP数据包实施过滤和限制,是典型的包过滤防火墙,它也可以实现网络地址转换(NAT)等功能

ufw

ufw是ubuntu系统默认提供的一个基于iptable之上的防火墙工具,ufw支持图形界面操作,只需在命令行运行ufw命令即能看到一系列的操作

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 安卓开发中,我们通常使用HTTP协议将文件上传服务器。下面是具体步骤: 1. 获取要上传的文件:首先,我们需要选择或通过其他方式获取要上传的文件,可以是照片、视频或其他类型的文件。 2. 创建HTTP请求:使用安卓的HttpClient或HttpURLConnection等工具,创建一个HTTP POST请求。 3. 设置请求头:在HTTP请求中设置必要的请求头,包括Content-Type、Content-Length等,以便服务器正确解析请求。 4. 设置请求体:将要上传的文件数据作为请求体的一部分,将文件数据写入请求体中。可以使用InputStream或byte数组等方式读取文件的数据。 5. 发送请求:将创建好的HTTP请求发送到服务器,等待服务器响应。 6. 处理服务器响应:根据服务器返回的响应状态码和响应内容,判断文件上传是否成功。如果上传成功,服务器可能会返回一些成功信息,我们可以进行相应处理。 7. 关闭连接:文件上传完成后,关闭HTTP连接,释放资源。 需要注意的是,上传大文件时可能会存在时间较长的问题,可能需要在后台线程中进行文件上传,以免阻塞主线程影响用户体验。 以上是一种基本的文件上传服务器的方式,当然根据实际需求和使用的框架,具体实现可能会有所不同。因此在实际开发中,要根据具体情况进行调整和优化。 ### 回答2: 安卓应用程序可以通过以下步骤将文件上传服务器: 1. 首先,用户需要在应用程序中选择要上传的文件。可以通过在应用程序中添加文件选择器或浏览器来实现。 2. 一旦用户选择了要上传的文件,应用程序将需要获取该文件的URI(统一资源标识符)。可以使用Android的ContentResolver来获取URI。 3. 接下来,应用程序需要建立与服务器的连接。这可以通过使用HTTP库或Volley库来实现。这些库提供了与服务器进行通信的函数和方法。 4. 应用程序需要创建一个HTTP请求,并将文件数据添加到请求中。这可以使用HTTP POST请求来实现。 5. 在HTTP请求中,应该添加所需的参数,例如文件名、文件类型等。 6. 最后,将创建的HTTP请求发送到服务器服务器将接收到的文件保存在相应的位置,并返回上传结果。 需要注意的是,上传文件服务器可能涉及到网络连接,因此需要在AndroidManifest.xml文件中添加相关权限,如网络访问权限等。 总而言之,Android应用程序可以通过获取文件URI、建立与服务器的连接、创建HTTP请求以及发送请求来将文件上传服务器。 ### 回答3: 安卓app上传文件服务器是一种常见的功能需求,可以通过以下步骤实现: 1. 获取文件:用户在app中选择要上传的文件,可以通过文件选择器或者拍照等方式获取文件。 2. 构建上传请求:将选择的文件包装成上传请求,请求包括目标服务器地址、上传文件的参数等信息。 3. 建立网络连接:使用HTTP或者其他网络协议建立与目标服务器的连接,确保网络正常。 4. 将文件上传服务器:将文件通过已建立的网络连接传输到服务器,可以使用POST请求将文件内容发送到服务器端。 5. 服务器端接收文件:服务器端接收到上传的文件,可以根据请求中的参数进行处理,如保存文件到指定位置。 6. 返回上传结果:服务器将上传结果返回给客户端,客户端可以根据结果进行相应的操作,如展示上传成功或失败的提示信息。 在安卓开发中,可以使用一些常见的开源库来简化上传文件服务器的流程,如Retrofit、OkHttp等。这些库提供了方便的API和工具类,可以帮助我们构建请求、建立网络连接、上传文件等操作。 需要注意的是,在上传文件时,我们应该对文件进行压缩或者限制文件大小,以减少网络传输的时间和流量消耗。同时,为了保证上传的文件在传输过程中的完整性和安全性,可以使用一些加密算法对文件进行加密处理。 总之,安卓app上传文件服务器是一项常见的功能,通过合理的步骤和使用相关的开源库,可以方便地实现该功能,并在上传过程中保证文件的安全和完整性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Kevin&Amy

感谢您的鼓励!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值