文件上传

文件夹上传第二弹

断了今生、忘了曾经 提交于 2020-01-22 06:48:33
文件夹上传:从前端到后端 文件上传是 Web 开发肯定会碰到的问题,而文件夹上传则更加难缠。网上关于文件夹上传的资料多集中在前端,缺少对于后端的关注,然后讲某个后端框架文件上传的文章又不会涉及文件夹。今天研究了一下这个问题,在此记录。 先说两个问题: 是否所有后端框架都支持文件夹上传? 是否所有浏览器都支持文件夹上传? 第一个问题:YES,第二个问题:NO 只要后端框架对于表单的支持是完整的,那么必然支持文件夹上传。至于浏览器,截至目前,只有 Chrome 支持。 如果需要其它的浏览器支持则需要借助于插件,比如泽优大文件上传控件: www.webuploader.net 关于WebUploader的功能说明: 大文件上传续传 支持超大文件上传(100G+)和续传,可以关闭浏览器,重启系统后仍然继续上传。 开源 提供ASP.NET,JSP,PHP示例和源代码,其中JSP提供MySQL,Oracle,SQL Server数据库的配置和示例代码。 分片、并发 分片与并发结合,将一个大文件分割成多块,并发上传,极大地提高大文件的上传速度。 当网络问题导致传输错误时,只需要重传出错分片,而不是整个文件。另外分片传输能够更加实时的跟踪上传进度。 预览、压缩 支持常用图片格式jpg,jpeg,gif,bmp,png预览与压缩,节省网络数据传输。 解析jpeg中的meta信息

文件上传案例的客户端

妖精的绣舞 提交于 2020-01-21 23:51:23
package com.learn.demo02.FileUpload; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.Socket; /* 文件上传案例的客户端:读取本地文件,上传到服务器,读取服务器回写的数据 明确: 数据源:c:\\1.jpg 目的地:服务器 实现步骤: 1.创建一个本地字节输入流FileInputStream对象,构造方法中绑定要读取的数据源 2.创建一个客户端Socket对象,构造方法中绑定服务器的IP地址和端口号 3.使用Socket中的方法getOutputStream,获取网络字节输出流OutputStream对象 4.使用本地字节输入流FileInputStream对象中的方法read,读取本地文件 5.使用网络字节输出流OutputStream对象中的方法write,把读取到的文件上传到服务器 6.使用Socket中的方法getInputStream,获取网络字节输入流InputStream对象 7.使用网络字节输入流InputStream对象中的方法read读取服务回写的数据 8.释放资源(FileInputStream

asp.net web 大文件上传源代码

假装没事ソ 提交于 2020-01-19 12:50:15
以ASP.NET Core WebAPI 作后端 API ,用 Vue 构建前端页面,用 Axios 从前端访问后端 API ,包括文件的上传和下载。 准备文件上传的API #region 文件上传 可以带参数 [HttpPost("upload")] public JsonResult uploadProject(IFormFile file, string userId) { if (file != null) { var fileDir = "D:\\aaa"; if (!Directory.Exists(fileDir)) { Directory.CreateDirectory(fileDir); } //文件名称 string projectFileName = file.FileName; //上传的文件的路径 string filePath = fileDir + $@"\{projectFileName}"; using (FileStream fs = System.IO.File.Create(filePath)) { file.CopyTo(fs); fs.Flush(); } return Json("ok"); }else{ return Json("no"); } } #endregion 前端vue上传组件 ( 利用Form表单上传 )

PHP文件上传 $_FILES['file']['error']

可紊 提交于 2020-01-19 09:59:40
PHP文件上传 $_FILES['file']['error']从 PHP 4.2.0 开始,PHP 将随文件信息数组一起返回一个对应的错误代码。该代码可以在文件上传时生成的文件数组中的 error 字段中被找到,也就是 $_FILES['file']['error']。 UPLOAD_ERR_OK 其值为 0,没有错误发生,文件上传成功。 UPLOAD_ERR_INI_SIZE 其值为 1,上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值。 UPLOAD_ERR_FORM_SIZE 其值为 2,上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。 UPLOAD_ERR_PARTIAL 其值为 3,文件只有部分被上传。 UPLOAD_ERR_NO_FILE 其值为 4,没有文件被上传。 UPLOAD_ERR_NO_TMP_DIR 其值为 6,找不到临时文件夹。PHP 4.3.10 和 PHP 5.0.3 引进。 UPLOAD_ERR_CANT_WRITE 其值为 7,文件写入失败。PHP 5.1.0 引进。 注意: 以上值在 PHP 4.3.0 之后变成了 PHP 常量。 来源: https://www.cnblogs.com/lizhenli/p/3394567.html

php大文件上传失败的原因及解决方法

情到浓时终转凉″ 提交于 2020-01-19 07:03:02
php.ini无法上传大文件解决办法 1、打开php.ini 2、查找post_max_size:(修改上传大小限制) 表单提交最大数值,此项不是限制上传单个文件的大小,而是针对整个表单的提交数据进行限制的默认为8m,设置为自己需要的值,此参数建议要设置比upload_max_filesize大一些 3、查找file uploads: (修改上传开关限制) 是否允许通过http上传文件的开关,确认file_uploads = on 4、查找upload_tmp_dir: (修改上传临时文件限制) 文件上传至服务器上存储临时文件的地方,如果没指定就会用系统默认的临时文件夹如果系统报错提示有“xxx临时目录xxx”的话,这个目录就需要你来设置一个有效目录,没报错就不用管 5、查找upload_max_filesize: (修改上传大小限制) 允 许上传文件大小的最大值,默认为2m,设置为自己需要的值此参数建议不要超过post_max_size值,因为它受控于post_max_size值 (就算upload_max_filesize设置了1g, 而post_max_size只设置了2m时,大于2m的文件照样传不上去,因为它受控于 post_max_size值) 6、如果要上传大于8m的文件,还需要对下面的参数也进行设置:(修改上传时间限制) 查找max_execution_time =

JQuery文件上传插件JQuery.upload.js的用法简介

我的未来我决定 提交于 2020-01-18 22:18:34
转载自: https://blog.51cto.com/3058076/2374493 JQuery文件上传插件,这个插件很小,用法很简单,效果却很棒。 注意:JQuery版本要求1.8及以上,大家执行如果没效果,则检查JQuery版本,如果是1.8及以上,则该插件源码中的.size()需要替换为.length,在2019-12-30以后向我要源码的不用担心这个问题,已经修正了。 先看看效果图 这款JQuery文件上传插件(JQuery.upload.js)是不是很简洁清爽,后台Java文件接收类就不贴了,都是一样的。 注意:为了简洁的接收文件上传的相关信息,后台凡是在涉及上传文件的实体类,都增加字段‘upload’。 1、HTML部分: 只需添加一行就行: <div class="upload" id="case" name="case" action="/userinfo/upload" data-num="2" data-type="jpg,pdf,docx" data-size="10240" data-value=""></div> 说明: action:接收文件的url,如action="/userinfo/upload" data-num:允许上传文件的数量,如data-num="2" data-type:允许上传文件的格式,如data-type="jpg,pdf

局域网 大文件分片上传处理

我的未来我决定 提交于 2020-01-18 19:22:00
最近遇见一个需要上传百兆大文件的需求,调研了七牛和腾讯云的切片分段上传功能,因此在此整理前端大文件上传相关功能的实现。 在某些业务中,大文件上传是一个比较重要的交互场景,如上传入库比较大的Excel表格数据、上传影音文件等。如果文件体积比较大,或者网络条件不好时,上传的时间会比较长(要传输更多的报文,丢包重传的概率也更大),用户不能刷新页面,只能耐心等待请求完成。 下面从文件上传方式入手,整理大文件上传的思路,并给出了相关实例代码,由于PHP内置了比较方便的文件拆分和拼接方法,因此服务端代码使用PHP进行示例编写。 本文相关示例代码位于github上,主要参考 聊聊大文件上传 大文件切割上传 文件上传的几种方式 首先我们来看看文件上传的几种方式。 普通表单上传 使用PHP来展示常规的表单上传是一个不错的选择。首先构建文件上传的表单,并指定表单的提交内容类型为enctype="multipart/form-data",表明表单需要上传二进制数据。 然后编写index.php上传文件接收代码,使用move_uploaded_file方法即可(php大法好…) form表单上传大文件时,很容易遇见服务器超时的问题。通过xhr,前端也可以进行异步上传文件的操作,一般由两个思路。 文件编码上传 第一个思路是将文件进行编码,然后在服务端进行解码,之前写过一篇在前端实现图片压缩上传的博客

求超大文件上传方案( php )

a 夏天 提交于 2020-01-18 05:12:23
核心原理: 该项目核心就是文件分块上传。前后端要高度配合,需要双方约定好一些数据,才能完成大文件分块,我们在项目中要重点解决的以下问题。 * 如何分片; * 如何合成一个文件; * 中断了从哪个分片开始。 如何分,利用强大的js库,来减轻我们的工作,市场上已经能有关于大文件分块的轮子,虽然程序员的天性曾迫使我重新造轮子。但是因为时间的关系还有工作的关系,我只能罢休了。最后我选择了百度的WebUploader来实现前端所需。 如何合,在合之前,我们还得先解决一个问题,我们如何区分分块所属那个文件的。刚开始的时候,我是采用了前端生成了唯一uuid来做文件的标志,在每个分片请求上带上。不过后来在做秒传的时候我放弃了,采用了Md5来维护分块和文件关系。 在服务端合并文件,和记录分块的问题,在这方面其实行业已经给了很好的解决方案了。参考迅雷,你会发现,每次下载中的时候,都会有两个文件,一个文件主体,另外一个就是文件临时文件,临时文件存储着每个分块对应字节位的状态。 这些都是需要前后端密切联系才能做好,前端需要根据固定大小对文件进行分片,并且请求中要带上分片序号和大小。前端发送请求顺利到达后台后,服务器只需要按照请求数据中给的分片序号和每片分块大小(分片大小是固定且一样的)算出开始位置,与读取到的文件片段数据,写入文件即可。 为了便于开发,我 将服务端的业务逻辑进行了如下划分,分成初始化

安装fastDFS

强颜欢笑 提交于 2020-01-17 13:01:36
FastDFS 是用 c 语言编写的一款开源的分布式文件系统。FastDFS 为互联网量身定制, 充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用 FastDFS 很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。 FastDFS 架构包括 Tracker server 和 Storage server。客户端请求 Tracker server 进行文 件上传、下载,通过 Tracker server 调度最终由 Storage server 完成文件上传和下载。 Tracker server 作用是负载均衡和调度,通过 Tracker server 在文件上传时可以根据一些 策略找到 Storage server 提供文件上传服务。可以将 tracker 称为追踪服务器或调度服务 器。 Storage server 作用是文件存储,客户端上传的文件最终存储在 Storage 服务器上, Storageserver 没有实现自己的文件系统而是利用操作系统 的文件系统来管理文件。可以将 storage 称为存储服务器。 安装 libfastcommon依赖库 下载 https://github.com/happyfish100/libfastcommon/releases 解压 tar -zxvf libfastcommon-1.0.43

vSphere vCenter Web Client 6.X将文件上传到数据存储时出错

不羁岁月 提交于 2020-01-17 07:43:48
尝试将任何文件上传到 VMware vSphere 基础结构中的数据存储时,将文件上传到数据存储时会出现错误,并且操作未完成且失败。 要找出错误的原因,您可以单击 “ 详细信息 ” 以获取其他信息。 查看错误的详细信息,问题的原因是由于浏览器使用了 不受信任的证书 。 查看浏览器, vCenter Server URL 被标记为 “ 不安全 ” 。该失败是由于 用于连接 vCenter Server 的不受信任的证书引起的。 解决将文件上传到数据存储的问题 要解决此错误,请打开您喜欢的浏览器并输入 vCenter Server 的地址, 而不指定 要使用的 任何客户端 (闪存或 HTML ),例如 https : // vCenter_address 。单击右侧的 “ 下载受信任的根 CA 证书 ” 链接。 一种 。 ZIP 文件已下载 到您的本地计算机中。访问。 ZIP 文件文件 夹位置以提取证书。 将下载的文件解压缩到计算机的文件夹中。为支持的操作系统提取三个文件夹: lin , mac , win 。 右键单击 Windows 菜单图标,然后选择 “ 运行 ” 。输入 mmc ,然后按 Enter 打开管理控制台。 从菜单中选择 文件 > 添加 / 删除管理单元 。 选择 证书 项,然后单击 添加 。 选择 “ 计算机帐户 ” 选项,然后单击 “ 下一步 ” 。 选择