精华内容
下载资源
问答
  • web上传整个文件夹

    千次阅读 2019-08-21 15:01:40
    在Web应用系统开发中,文件上传和下载功能是非常...支持文件夹上传,且要求在服务端保留层级结构。文件夹数量要求支持到10W。 支持大文件断点续传,要求刷新浏览器,重启浏览器,重启电脑后仍然能够继续上传。文...

    在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现。

     

    先说下要求:

    PC端全平台支持,要求支持Windows,Mac,Linux

    支持所有浏览器。

    支持文件批量上传

    支持文件夹上传,且要求在服务端保留层级结构。文件夹数量要求支持到10W。

    支持大文件断点续传,要求刷新浏览器,重启浏览器,重启电脑后仍然能够继续上传。文件大小要求能够支持到50个G。

    支持自动加载本地文件,要求能够自动加载指定的本地文件。

    支持文件批量下载,要求不要在服务器打包。因为50G的文件在服务器打包时间比较长。

    支持文件夹下载,要求不要在服务器打包,下载到本地后要求保留层级结构

    文件列表面板支持路径导航,新建文件夹

     

      对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用Servlet获取上传文件的输入流然后再解析里面的请求参数是比较麻烦,所以一般选择采用apache的开源工具common-fileupload这个文件上传组件。这个common-fileupload上传组件的jar包可以去apache官网上面下载,也可以在struts的lib文件夹下面找到,struts上传的功能就是基于这个实现的。common-fileupload是依赖于common-io这个包的,所以还需要下载这个包。

    一、开发环境搭建

      创建一个FileUploadAndDownLoad项目,加入Apache的commons-fileupload文件上传组件的相关Jar包,如下图所示:

     

    依赖jar包如下

     

    二、实现文件上传

    前台HTML模板

     

    文件块处理逻辑如下

     

    保存文件块逻辑如下

    web.xml配置如下

     

    运行效果如下:

     

    文件面板逻辑

    前台代码

    2.3、文件上传的细节

      上述的代码虽然可以成功将文件上传到服务器上面的指定目录当中,但是文件上传功能有许多需要注意的小细节问题,以下列出的几点需要特别注意的

    1、为保证服务器安全,上传文件应该放在外界无法直接访问的目录下,比如放于WEB-INF目录下。

      2、为防止文件覆盖的现象发生,要为上传文件产生一个唯一的文件名。

      3、为防止一个目录下面出现太多文件,要使用hash算法打散存储。

      4、要限制上传文件的最大值。

      5、要限制上传文件的类型,在收到上传文件名时,判断后缀名是否合法。

      针对上述提出的5点细节问题,我们来改进一下UploadHandleServlet,改进后的代码如下:

    文件数据表结构

    文件夹数据表结构

    下载数据表结构

    针对上述提出的5点小细节问题进行改进之后,我们的文件上传功能就算是做得比较完善了。

    三、文件下载

    加载文件列表,注意,这里只列出上传完的文件和文件夹,没有上传完的就不列出了

    数据库的处理逻辑比较简单,注意一下SQL语句中的条件即可

      我们要将Web应用系统中的文件资源提供给用户进行下载,首先我们要有一个页面列出上传文件目录下的所有文件,当用户点击文件下载超链接时就进行下载操作,编写一个ListFileServlet,用于列出Web应用系统中所有下载文件。

    文件列表加载逻辑

           这里简单说一下ListFileServlet中listfile方法,listfile方法是用来列出目录下的所有文件的,listfile方法内部用到了递归,在实际开发当中,我们肯定会在数据库创建一张表,里面会存储上传的文件名以及文件的具体存放目录,我们通过查询表就可以知道文件的具体存放目录,是不需要用到递归操作的,这个例子是因为没有使用数据库存储上传的文件名和文件的具体存放位置,而上传文件的存放位置又使用了散列算法打散存放,所以需要用到递归,在递归时,将获取到的文件名存放到从外面传递到listfile方法里面的Map集合当中,这样就可以保证所有的文件都存放在同一个Map集合当中。

      编写一个用于处理文件下载的Servlet,DownLoadServlet的代码如下:

    文件管理器主要逻辑如下:

    文件管理器所有的逻辑都在PageFileMgr.java中实现。

    另外,文件管理器有一些相关的配置在data目录下

    系统配置数据如下

    路径配置如下

    文件管理器的脚本处理全部放在index.js中

    关于JavaWeb中的文件上传和下载功能的内容就这么多。

    最终实现的效果如下:

    文件批量上传

    文件批量下载

    路径导航

    更详细教程可以参考我的这篇文章:http://blog.ncmem.com/wordpress/2019/08/09/web%E4%B8%8A%E4%BC%A0%E6%95%B4%E4%B8%AA%E6%96%87%E4%BB%B6%E5%A4%B9/

    展开全文
  • <div><p>我在Linux下使用...但是我发现并不能上传整个文件夹,总是传了其中一个文件夹,并不能把文件夹下的所有文件夹一层一层迭代的上传完</p><p>该提问来源于开源项目:XuShaohua/bcloud</p></div>
  • 1.Linux下目录复制:本机->远程服务器 scp-r/home/shaoxiaohu/test1zhidao@192.168.0.1:/home/test2#test1为源目录,test2为目标目录,zhidao@192.168.0.1为远程服务器的用户名和ip地址。 2.Linux下目录复制:...

    1.Linux下目录复制:本机->远程服务器

    scp  -r /home/shaoxiaohu/test1  zhidao@192.168.0.1:/home/test2 
    #test1为源目录,test2为目标目录,zhidao@192.168.0.1为远程服务器的用户名和ip地址。

    2.Linux下目录复制:远程服务器->本机

    scp  -r zhidao@192.168.0.1:/home/test2 /home/shaoxiaohu/test1
    #zhidao@192.168.0.1为远程服务器的用户名和ip地址,test1为源目录,test2为目标目录。

    注:如果端口号有更改,需在scp 后输入:-P 端口号 (注意是大写,ssh的命令中 -p是小写)

     

    from here

    转载于:https://www.cnblogs.com/tdcqma/p/5684865.html

    展开全文
  • 原文转自:... 1.Linux下目录复制:本机->远程服务器 scp-r/home/shaoxiaohu/test1zhidao@192.168.0.1:/home/test2 #test1为源目录,test2为目标目录,zhi...

    原文转自:https://zhidao.baidu.com/question/1046040541327493019.html

     

    1.Linux下目录复制:本机->远程服务器

    scp  -r /home/shaoxiaohu/test1  zhidao@192.168.0.1:/home/test2 
    #test1为源目录,test2为目标目录,zhidao@192.168.0.1为远程服务器的用户名和ip地址。

    2.Linux下目录复制:远程服务器->本机

    scp  -r zhidao@192.168.0.1:/home/test2 /home/shaoxiaohu/test1
    #zhidao@192.168.0.1为远程服务器的用户名和ip地址,test1为源目录,test2为目标目录。

    注:如果端口号有更改,需在scp 后输入:-P 端口号 (注意是大写,ssh的命令中 -p是小写)

     

    转载于:https://www.cnblogs.com/xphdbky/p/7081946.html

    展开全文
  • apache ftp 文件夹新建、删除、上传文件 、下载文件 、上传文件夹 、下载文件夹 ,解决中文问题,包括需要的jar文件。 各种百度,google 整理得到,是ftp操作大全。ftp用serverU 客户端用8ftp, 里面有联系方式,...
  • 如何在Linux中使用sFTP上传或下载文件与文件夹 sFTP(安全文件传输程序)是一种安全的交互式文件传输程序,其工作方式与 FTP(文件传输协议)类似。 然而,sFTP 比 FTP 更安全;它通过加密 SSH 传输处理所有操作。在本文...

    如何在Linux中使用sFTP上传或下载文件与文件夹

    sFTP(安全文件传输程序)是一种安全的交互式文件传输程序,其工作方式与 FTP(文件传输协议)类似。 然而,sFTP 比 FTP 更安全;它通过加密 SSH 传输处理所有操作。在本文中,我们将向你展示如何使用 sFTP 上传/下载整个目录(包括其子目录和子文件)。

    作者:Aaron Kili来源:Linux中国|2017-03-09 14:42

    51CTO诚邀您9月23号和秒拍/国美/美团元专家一起聊智能CDN的优化之路,抓紧时间哦!


     

    sFTP(安全文件传输程序)是一种安全的交互式文件传输程序,其工作方式与 FTP(文件传输协议)类似。 然而,sFTP 比 FTP 更安全;它通过加密 SSH 传输处理所有操作。

    它可以配置使用几个有用的 SSH 功能,如公钥认证和压缩。 它连接并登录到指定的远程机器,然后切换到交互式命令模式,在该模式下用户可以执行各种命令。

    在本文中,我们将向你展示如何使用 sFTP 上传/下载整个目录(包括其子目录和子文件)。

    如何在 Linux 中使用 sFTP 传输文件/文件夹

    默认情况下,SFTP 协议采用和 SSH 传输协议一样的方式建立到远程服务器的安全连接。虽然,用户验证使用类似于 SSH 默认设置的密码方式,但是,建议创建和使用 SSH 无密码登录,以简化和更安全地连接到远程主机。

    要连接到远程 sftp 服务器,如下建立一个安全 SSH 连接并创建 SFTP 会话:

    1. $ sftp tecmint@192.168.56.10 

    登录到远程主机后,你可以如下运行交互式的 sFTP 命令:

    1. sftp> ls            #list directory  
    2. sftp> pwd           #print working directory on remote host 
    3. sftp> lpwd          #print working directory on local host 
    4. sftp> mkdir uploads     #create a new directory    

    Run sFTP Commands on Remote Linux

    Run sFTP Commands on Remote Linux

    • Linux 主机上运行 sFTP 命令*

    如何使用 sFTP 上传文件夹

    要将整个目录上传到远程 Linux 主机中,请使用 put 命令。但是,如果目录名称不存在于远程主机上的工作目录中,你将收到错误,如下面的屏幕截图所示。

    因此,首先在远程主机上创建一个具有相同名称的目录,然后从本地主机上传它,-r 参数允许拷贝子目录和子文件:

    1. sftp> put -r  Tecmint.com-articles 
    2. sftp> mkdir Tecmint.com-articles 
    3. sftp> put -r Tecmint.com-articles  

    使用 sFTP 上传文件夹

    使用 sFTP 上传文件夹

    要保留修改时间、访问时间以及被传输的文件的模式,请使用 -p 标志。

    1. sftp> put -pr Tecmint.com-articles 

    如何使用 sFTP 下载文件夹

    要从远程 Linux 主机下载整个 fstools-0.0 文件夹到本机中,如下所示使用 get 命令带上 -r 标志:

    1. sftp> get -r fstools-0.0  

    使用 sFTP 下载目录

    使用 sFTP 下载目录

    如果文件夹已经下载完成了,接着查看本机的工作目录。

    要退出 sFTP shell,输入:

    1. sftp> bye 
    2. 或者 
    3. sftp> exit 

    此外,阅读这篇 sFTP 命令和使用技巧。

    请注意,为了防止用户访问远程主机上的整个文件系统,出于安全原因,你可以使用 chroot Jail 将 sFTP 用户限制到其主目录中。

    就是这样了!在本文中,我们向你展示了如何使用 sFTP 上传/下载整个目录。使用下面的评论栏向我们提供你对本文/主题的看法。

    作者简介:

    Aaron Kili 是 Linux 和 F.O.S.S 爱好者,将来的 Linux 系统管理员和网络开发人员,目前是 TecMint 的内容创作者,他喜欢用电脑工作,并坚信分享知识。

    转载于:https://www.cnblogs.com/ceshi2016/p/7519740.html

    展开全文
  • linux scp远程拷贝文件及文件夹

    千次阅读 2019-01-14 15:41:26
    1、拷贝本机/home/test整个目录至远程主机172.168.1.100的/home/bak目录下 scp -r /home/test/ root@172.168.1.100:/home/bak/ 2、拷贝单个文件至远程主机 ...其实上传文件和文件夹区别就在参数 -r, 跟cp, r...
  • sFTP 上传或下载文件与文件夹

    万次阅读 2018-08-19 13:32:35
    要将整个目录上传到远程 Linux 主机中,请使用put命令。但是,如果目录名称不存在于远程主机上的工作目录中,你将收到错误。 因此,首先在远程主机上创建一个具有相同名称的目录,然后从本地主机上传它,-r参数允许...
  • Git1.Git基本操作指令2.Git从本地仓库上传文件到GitHub3.Git克隆3.1Git克隆远程项目到本地(克隆整个目录)3.2 Git克隆指定文件到本地 1.Git基本操作指令 要想能够比较熟练的使用Git,我们就要学会Git上的一些操作...
  • 建立SFTP连接 打开powershell,输入sftp root@178.23.0.132 ...基础命令: ...上传本地整个文件夹至远端 put -r test /tmp/jorian/ 下载远端文件至本地 get apache-maven-3.6.3-bin.tar.gz c:/tmp.
  • 第一步:在Windows系统下,将整个文件夹压缩成zip后缀的压缩包 方法一: 在文件夹xtemp上,右键,选中“发送到”--“压缩(zipped)文件夹” 即可完成zip格式文件夹的压缩 方法二: 在空白处,右键,...
  • LINUX下,struts 2 文件上传路径问题 在LINUX下,用struts2的文件上传功能,如果用.war方式发布的,且在程序中是用“//”表示... 解决办法:  第一:不用.war方式发布项目,把整个文件夹打包成.zip
  • 1.嵌入式linux的代码编译,需要用到交叉编译工具,因此需要安装ubuntu虚拟机,然后:在ubuntu中用交叉编译工具进行编译,刚开始自己是把整个的工程文件和代码都放到了ubuntu中,在ubuntu中进行代码的阅读和编写,然后...
  • 点击‘请上传图片’按钮,会把图片上传到服务器指定文件夹里,并返回可访问链接,在小程序端通过链接显示图片来确定上传图片整个流程正常,可以存取 二:具体实现 1:微信小程序端 wxml文件 <view class=...
  • Linux安装jdk

    2020-03-27 00:14:08
    Linux安装jdk 一、上传安装包到Linux 1、选择文件 2、选择连接sftp会话 3、使用put 命令传输本机的安装包到Linux 输入put ...复制本机安装包所在的路劲 ...会传整个文件夹,并在会在当前用户的家目录下...
  • Linux机器:bert-tensorflow调多GPU

    千次阅读 2019-06-26 16:12:35
    2)将整个代码包压缩上传linux某一文件夹,例如: 打开待存储文件路径:cd /data/usr_name 上传压缩包:rz并选择压缩包(假如包名为bert-multi-gpu.zip)上传 3)解压 7za x bert-multi-gpu.zip 4...
  • 删除整个文件夹:rm –rf foldName 删除如果当前文件夹为空删除当前层: rmdir –p foldName 上传下载文件 rz 选择需上传的文件 如果上传没有开始看传输->Zmodem传输列表 sz fileName 会下载到应该你设置的...
  • 1.在宝塔Linux面板中,打开站点所在根目录,点击上传按钮,将自己写好的网页代码单个文件或者整个文件夹上传 点击开始上传按钮,上传完毕点击关闭 2.点击上传好的文件夹,将文件内容全选-剪切,回到根目录-粘贴...
  • linux中配置虚拟主机

    2017-02-03 01:22:14
    上传整个TP项目的文件夹修改权限chmod -R 777 文件夹名; 修改TP配置文件(Application/Common/Conf/config.php),更改数据库连接信息 配置虚拟主机 WINDOWS系统中修改hosts文件 C:\wind
  • 然后,任何人都可以连接到服务器并下载文件或自动生成整个目录的ZIP(类似于Google云端硬盘。)客户端还可以通过其浏览器将文件上传到服务器,并且剪贴板卡可以双向共享。 为方便起见,将生成QR码。 产品特点 无需...
  • 网上有很多介绍在pycharm中怎么使用virtualenv ,但是后续在...本地通过idea开发后,生成requirements.txt文件,把整个文件夹上传至服务器,服务器上执行pip install -r requirements.txt,然后python XX.py 运行...
  • 公司提供了一台linux服务器,但是上面没有网络,让我搭建nginx,下面是做法: ...提取码:9e5w 1.上面是我收集起来的本次需要用的,包括nginx...2.进入到你放的nginx整个文件夹所在的位置,我是 cd/usr/local/src...
  • linux查看磁盘目录所占空间的大小

    千次阅读 2019-05-20 15:14:46
    1、因为公司的服务器有限但是公司的项目比较多 所有一个linux服务器 挂了七个站点 有一些站点的上传图片上传视频也没有用三方的api 而是直接 存到自己的文件夹 再加上 用的一些框架 以及mysql nginx 产生的一些日志 ...
  • vue项目部署至linux的nginx服务器

    千次阅读 2019-05-16 16:51:06
    1.修改vue项目下 config/index.js 中build 的assetsPublicPath路径,改为 './' (放入服务器正确加载静态文件) ...3.用上传工具(FileZilla等 )将整个dist文件夹上传至服务器指定路径 ,例如下图 4.配置nginx配置...
  • 公司提供了一台linux服务器,但是上面没有网络,让我搭建nginx,下面是做法: ...提取码:9e5w 1.上面是我收集起来的本次需要用的,包括...2.进入到你放的nginx整个文件夹所在的位置,我是 cd /usr/local/src/nginx/gcc

空空如也

空空如也

1 2 3 4 5
收藏数 89
精华内容 35
关键字:

linux上传整个文件夹

linux 订阅