fileinfo

超大文件上传和断点续传的源代码

只谈情不闲聊 提交于 2020-08-11 08:47:50
总结一下大文件分片上传和断点续传的问题。因为文件过大(比如1G以上),必须要考虑上传过程网络中断的情况。http的网络请求中本身就已经具备了分片上传功能,当传输的文件比较大时,http协议自动会将文件切片(分块),但这不是我们现在说的重点,我们要做的事是保证在网络中断后1G的文件已上传的那部分在下次网络连接时不必再重传。所以我们本地在上传的时候,要将大文件进行分片,比如分成1024*1024B,即将大文件分成1M的片进行上传,服务器在接收后,再将这些片合并成原始文件,这就是分片的基本原理。断点续传要求本地要记录每一片的上传的状态,我通过三个状态进行了标记(wait loading finish),当网络中断,再次连接后,从断点处进行上传。服务器通过文件名、总片数判断该文件是否已全部上传完成。 下面来说细节: 1、首先获取文件(音视频、图片) 分两种情况,一种是在相册库里直接获取,一种是调用相机。如果是通过UIImagePickerView来获取(细节不详述,网上一大堆),我们会发现当你选定一个视频的时候,会出现图1的压缩页面,最后我们的app获取的视频就是这个经过压缩后的视频(不是视频库里的原始视频,这里有个注意点,操作完该压缩视频后记得释放,系统不会帮你释放的,需要你手动来操作,下面会说到),然后通过UIImagePickerView的协议方法中的- ( void

C# winform程序怎么打包成安装项目(图解)

走远了吗. 提交于 2020-08-10 23:32:49
C# winform程序怎么打包成安装项目(图解) 开发环境:VS2010+SQL Server 2008 操作系统:win7_32bit 旗舰版 开发语言:C# 项目名称:学生寄宿管理系统 下面开始介绍:如何给windows应用程序打包? 第一步: 打开VS2010,打开你要打包的项目,然后右击"解决方案",”添加“,"新建项目",弹出如下图所示界面: 点击”安装和部署“左边的三角形,选择下面的”Visual studio Installer“,再选择”安装项目“,同时将下面的命名改为”Setup“点击确定。 第二步: 点击解决方案里面生成的”Setup“,将属性中的ProtectName改为”学生寄宿系统 V1.0 “(你的项目名字) 第三步: 右击解决方案里面的”Setup“,然后再选择”属性“。弹出属性页界面如下第二张图: 再点击里面的系统必备。 重要一点:勾选"从与我的应用程序相同的位置下载系统必备组件(D)",其实意思就是说你勾选后,生成安装项目时,在你安装项目的路径下,会有你在系统必备组件列表中勾选的组件.(系统自动完成,这一点还不错,不需要你自己去下载组件) 1)、Windows Installer 3.1(必选) 2)、.NET Framework 3.5 (可选)参考最后说明 3)、Crystal Report Basic for Visual

dotnet C# 如何不联网下快速获取一段url链接里面读取文件名

*爱你&永不变心* 提交于 2020-08-10 18:02:11
在不联网情况下,从 url 获取文件名也就是只能靠 url 本身了,如果是 get 的链接很多链接后面都是带上了文件名,那么如何用最短的代码获取链接里面的文件名 如我有链接 https://blog.lindexi.com/lindexi.html 我想要拿到 lindexi.html 这个文件名可以如何写代码最少 请看下面方法 private string GetFileName(string url) { FileInfo fileInfo = new FileInfo(url); return fileInfo.Name; } 是不是看错代码了,居然用了 FileInfo 的方法,小伙伴请试试用下面代码跑起来 using System; using System.IO; static void Main(string[] args) { Program program = new Program(); Console.WriteLine(program.GetFileName("https://blog.lindexi.com/lindexi.html")); } 此时可以看到输出了 lindexi.html 就这样返回了 url 链接里面的文件名,那么还有更短的方法 private string GetFileName(string url) { return System

C#中修改文件或文件夹的权限,为指定用户、用户组添加完全控制权限

核能气质少年 提交于 2020-08-07 15:13:49
写在前面 在windows系统中,c盘中的目录权限比较高,有时制作安装包的时候,默认的安装路径就是在c盘,但对运行可执行文件,有时候需要为其添加完全控制权限,或者读写权限。这里将当时的解决方案记录一下。 代码实现 在C盘添加一个文件夹,并在文件夹内部,新建一个文本文件,如图所示: 该文件夹下,新建一个文本文件,如图所示: 为文件添加完全控制权限: /// <summary> /// 为文件添加users,everyone用户组的完全控制权限 /// </summary> /// <param name="filePath"></param> static void AddSecurityControll2File(string filePath) { //获取文件信息 FileInfo fileInfo = new FileInfo(filePath); //获得该文件的访问权限 System.Security.AccessControl.FileSecurity fileSecurity = fileInfo.GetAccessControl(); //添加ereryone用户组的访问权限规则 完全控制权限 fileSecurity.AddAccessRule(new FileSystemAccessRule("Everyone", FileSystemRights

开源图床程序-ImgURL

纵饮孤独 提交于 2020-08-05 16:41:27
ImgURL是一款国人开发的开源图床程序。基于 PHP + SQLite 3开发。遵守GPL3.0开源协议。 主要功能: 支持拽拖上传、多图上传、Ctrl + V粘贴上传、URL上传 支持图片裁剪,自动生成缩略图 限制访客上传数量 图片压缩/批量压缩 图片鉴黄/批量鉴黄 API支持 环境要求: PHP >= 5.6 PDO_SQLite GD2 ImageMagick fileinfo pathinfo Demo http://test.imgurl.org/ 账号:xiaoz 密码:xiaoz.me 后台:http://test.imgurl.org/user/login GitHub 仓库挂件 WordPress 插件 helloxz / imgurl ImgURL是一个简单、纯粹的图床程序,让个人图床多一个选择。 http://imgurl.org/ 1,320 340 Download ZIP 相关文件下载地址 本地直接下载 来源: oschina 链接: https://my.oschina.net/u/4345458/blog/4348457

前端实现浏览器端大文件分片上传

ぃ、小莉子 提交于 2020-08-05 05:25:09
总结一下大文件分片上传和断点续传的问题。因为文件过大(比如1G以上),必须要考虑上传过程网络中断的情况。http的网络请求中本身就已经具备了分片上传功能,当传输的文件比较大时,http协议自动会将文件切片(分块),但这不是我们现在说的重点,我们要做的事是保证在网络中断后1G的文件已上传的那部分在下次网络连接时不必再重传。所以我们本地在上传的时候,要将大文件进行分片,比如分成1024*1024B,即将大文件分成1M的片进行上传,服务器在接收后,再将这些片合并成原始文件,这就是分片的基本原理。断点续传要求本地要记录每一片的上传的状态,我通过三个状态进行了标记(wait loading finish),当网络中断,再次连接后,从断点处进行上传。服务器通过文件名、总片数判断该文件是否已全部上传完成。 下面来说细节: 1、首先获取文件(音视频、图片) 分两种情况,一种是在相册库里直接获取,一种是调用相机。如果是通过UIImagePickerView来获取(细节不详述,网上一大堆),我们会发现当你选定一个视频的时候,会出现图1的压缩页面,最后我们的app获取的视频就是这个经过压缩后的视频(不是视频库里的原始视频,这里有个注意点,操作完该压缩视频后记得释放,系统不会帮你释放的,需要你手动来操作,下面会说到),然后通过UIImagePickerView的协议方法中的- ( void

B/S实现文件上传下载功能实例解析

不想你离开。 提交于 2020-08-05 05:04:40
前段时间做视频上传业务,通过网页上传视频到服务器。 视频大小 小则几十M,大则 1G+,以一般的HTTP请求发送数据的方式的话,会遇到的问题:1,文件过大,超出服务端的请求大小限制;2,请求时间过长,请求超时;3,传输中断,必须重新上传导致前功尽弃; 解决方案: 1,修改服务端上传的限制配置;Nginx 以及 PHP 的上传文件限制 不宜过大,一般5M 左右为好; 2,大文件分片,一片一片的传到服务端,再由服务端合并。这么做的好处在于一旦上传失败只是损失一个分片而已,不用整个文件重传,而且每个分片的大小可以控制在4MB以内,服务端限制在4M即可。 前端使用UP6大文件上传控件 <div class="section section6 section5"> <div class="part1"><a href="javascript:;" target="_blank" class="part1__btn">批量删除</a><span class="part1__txt"><em class="part1__num" id="upload_num">0</em>个视频,共 <em class="part1__num" id="upload_size">0M</em></span></div> <table class="section5__table"> <tbody id=

PHP大文件分片上传/多线程上传

和自甴很熟 提交于 2020-07-27 10:57:34
前段时间做视频上传业务,通过网页上传视频到服务器。 视频大小 小则几十M,大则 1G+,以一般的HTTP请求发送数据的方式的话,会遇到的问题:1,文件过大,超出服务端的请求大小限制;2,请求时间过长,请求超时;3,传输中断,必须重新上传导致前功尽弃; 解决方案: 1,修改服务端上传的限制配置;Nginx 以及 PHP 的上传文件限制 不宜过大,一般5M 左右为好; 2,大文件分片,一片一片的传到服务端,再由服务端合并。这么做的好处在于一旦上传失败只是损失一个分片而已,不用整个文件重传,而且每个分片的大小可以控制在4MB以内,服务端限制在4M即可。 前端使用UP6大文件上传控件 <div class="section section6 section5"> <div class="part1"><a href="javascript:;" target="_blank" class="part1__btn">批量删除</a><span class="part1__txt"><em class="part1__num" id="upload_num">0</em>个视频,共 <em class="part1__num" id="upload_size">0M</em></span></div> <table class="section5__table"> <tbody id=

php多版本:已存在php5场景下,编译安装php7,实现apache2.2--php-fpm7通信

[亡魂溺海] 提交于 2020-07-27 02:29:32
php多版本:已存在php5场景下,编译安装php7,实现apache2.2--php-fpm7通信 wget --no-check-certificate https://www.php.net/distributions/php-7.2.31.tar.gz tar xzvf php-7.2.31.tar.gz cd php-7.2.31 ./configure --prefix=/usr/local/php746 --with-config-file-path=/usr/local/php746/etc --enable-fpm --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --disable-fileinfo # --disable-fileinfo 加入这行 否则有时候报错在make install的睡时候报错 make: *** [ext/fileinfo/libmagic/apprentice.lo] Error 1 make make install #php命令地址 /usr/local/php746/bin/php 可以用/usr/local/php746/bin/php -v查看版本号 注意不要直接使用php,如果是多版本php的话php这个命令调用的是环境变量中的php

SpringCloud怎么实现web端上传超大文件

前提是你 提交于 2020-05-09 20:47:14
前段时间做视频上传业务,通过网页上传视频到服务器。 视频大小 小则几十M,大则 1G+,以一般的HTTP请求发送数据的方式的话,会遇到的问题:1,文件过大,超出服务端的请求大小限制;2,请求时间过长,请求超时;3,传输中断,必须重新上传导致前功尽弃; 解决方案: 1,修改服务端上传的限制配置;Nginx 以及 PHP 的上传文件限制 不宜过大,一般5M 左右为好; 2,大文件分片,一片一片的传到服务端,再由服务端合并。这么做的好处在于一旦上传失败只是损失一个分片而已,不用整个文件重传,而且每个分片的大小可以控制在4MB以内,服务端限制在4M即可。 前端使用UP6大文件上传控件 <div class="section section6 section5"> <div class="part1"><a href="javascript:;" target="_blank" class="part1__btn">批量删除</a><span class="part1__txt"><em class="part1__num" id="upload_num">0</em>个视频,共 <em class="part1__num" id="upload_size">0M</em></span></div> <table class="section5__table"> <tbody id=