简简单单 上传下载

背景

我们经常会有手机向电脑传文件 或者 电脑像手机传文件的需求。

而通常的解决方案是:手机上安装一个聊天软件(如微信),电脑上安装一个聊天软件,然后自己给自己传输,然后进行下载。

这种方式是很麻烦的:

  • 需要手机和电脑上都安装相应的软件。
  • 需要有一个网络环境。
  • 需要先把文件上传到聊天软件的服务器,然后再从软件服务器进行下载。

为了尽可能的避免这种没必要的麻烦,于是就做了这个工具,简简单单 上传下载。


选型

做这种工具其实很好做,就是做一个 Server 支持上传下载在能力就可以了。

这里选择了用 PHP,而没有选择用 NodeJS,主要原因如下:

  • NodeJS 虽然方便,但在一个全新的电脑上,除了需要安装环境之外,还需要安装依赖,而国内对 npm 的访问速度并不快,各种解决方案只会增加用户对于这个工具的使用成本。
  • PHP 目前像 MacOS 是默认支持 PHP 环境的,可以直接使用。即便需要安装环境,也是十分快的,且不用安装依赖。
  • PHP 5.4 已经支持内置的 Web Server 了,所以开启一个 Server 十分简单。


开发

PHP Server 命令:

php [options] -S <addr>:<port> [-t docroot] [router]

直接在当前目录下,执行上面的命令就可以了。

PHP 默认对上传的大小和数量进行了限制,而这些修改只能通过 php.ini 文件进行修改,而 php 命令是支持指定 php.ini 的位置的。

 -c <path>|<file> Look for php.ini file in this directory

所以我们可以直接在项目目录下放置 php.ini 文件进行配置,并通过指定的方式进行执行:

php -c ./ -S 地址:端口

 php.ini 需要需改的地址,可参考(链接):

upload_max_filesize = 0
max_file_uploads = 1000 ; 最大上传数量,1000应该够了
memory_limit = -1
post_max_size = 0
max_execution_time = 0
max_input_time = -1

效果

效果如下。

执行

php -c ./ -S localhost:8000

输出:

$ php -c ./ -S localhost:8000
PHP 7.3.24-(to be removed in future macOS) Development Server started at Wed Apr 14 13:49:57 2021
Listening on http://localhost:8000
Document root is /Users/lecepin/multi-file-upload
Press Ctrl-C to quit.

点击 Listening on 后面的地址 http://localhost:8000 即可访问。

注意:因为手机访问需要用的电脑中的局域网地址,所以访问上面命令生成后的地址,会对 IP 进行校验,如果不是局域网的,则会生成一个准确的命令,再执行一次即可,如下图所示:

 上传

正常启动后,界面如下所示:

 

手机和电脑在同一网络的情况下,直接扫码即可访问。

上传后,会进行相应状态提示,如下图所示:

 下载

如果想进行上传文件的下载,可以点击 已上传 链接进行访问,如下图所示:

 

对于需要提供给手机端进行下载的文件,也可以直接放到 Upload 目录中,会在 已下载 页面呈现。

Upload 文件夹会在上传文件操作中自动创建。


代码详情访问 Github multi-file-upload 。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/401609.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

「VSCode插件」提效工具 - 快捷面板

前言 做为一个开发人员&#xff0c;在日常的开发过程中&#xff0c;经常会在 Terminal 中输入各种命令&#xff0c;如&#xff1a;npm i、npm start、git init、rm -rf、node_modules 等命令&#xff0c;看似方便&#xff0c;实则高频率的输入很烦人。那有什么方法可以把这些高…

VSCode摸鱼插件 — FreeWindow

背景 在一些不是很忙的时候&#xff0c;想高效利用下时间&#xff0c;看看书丰富一下自己&#xff0c;但是大庭广众下长时间看一本实体书&#xff0c;或者看手机的电子书&#xff0c;或者在电脑上看网页书都不太合适&#xff0c;显得自己很闲的样子&#xff0c;那该如何看起来…

在线生成文本图片 CFC函数计算版

百度云函数计算 CFC 运行环境。 使用 sharp 图处理&#xff08;文档&#xff09;。 使用 图片参数&#xff1a; widthheightrgba 文本参数&#xff1a; textfColorfSizefTopfLeft {HTTP触发器地址}?width1000&height300&fSize120&fColor%23d9333f&text奥利…

调试利器:浏览器 Logger

1. 前言 在一些业务系统中&#xff0c;由于集成的平台产物或工具较多&#xff0c;而这些产物的 log 不收敛&#xff0c;很多时候打开控制台就是满屏的 log&#xff0c;自己的 log 需要在满屏的 log 中查找&#xff0c;或者在 log 上加一些前缀用 Filter 去过滤&#xff0c;严重…

主动型页面性能利器:Page Status

1. 背景 当页面出现性能问题&#xff0c;如加载慢、页面卡顿等现象时&#xff0c;大多是用户主观上的感受。而要真正客观的去评测性能和定位问题原因&#xff0c;通常需要专业的前端同学通过 DevTools 中的 Performance 等工具来查看&#xff08;如图 1 所示&#xff09;&…

前端状态机:XState 首个中文文档上线了

XState 做为一个非常好用的前端状态机库&#xff0c;但官网文档却只有英文版&#xff0c;为了阅读体验&#xff0c;我这里翻译了中文版。 仓库地址&#xff1a;https://github.com/lecepin/xstate-docs-cn文档地址&#xff1a;https://lecepin.github.io/xstate-docs-cn/zh 由…

降低前端业务复杂度新视角:状态机范式

无论做业务需求还是做平台需求的同学&#xff0c;随着需求的不断迭代&#xff0c;通常都会出现逻辑复杂、状态混乱的现象&#xff0c;维护和新增功能的成本也变的十分巨大&#xff0c;苦不堪言。下图用需求、业务代码、测试代码做对比&#xff1a; 图中分了 3 个阶段&#xff1…

Mac 摸鱼神器

这是一个 Mac 系统的摸鱼应用&#xff0c;仿真了大多数的 Mac 系统黑屏故障。开启摸鱼功能后&#xff0c;可以给自己一段休息的时间~ 软件使用 Electron 开发&#xff0c;源码&#xff08;欢迎 Star ⭐ &#xff09;&#xff1a;https://github.com/lecepin/mac-fish 1. 主界…

前端状态机系列:SCXML与XState对应关系

1. 前置说明 这次再说明下自己对状态图的看法。状态图虽然有非常多的优势&#xff08;参考上篇文章&#xff09;&#xff0c;如果你想使用&#xff0c;关于是否对整个旧项目进行全量状态图化&#xff0c;这里给一个适应范围是&#xff1a;项目中复杂的部分进行状态图建模是非常…

常用注入 Script 方法

1. 背景 如果你想在当前的页面&#xff0c;试一下某个 JS 工具库&#xff0c;而这个工具库恰好你没安装。&#xff08;如 lodash&#xff09;如果你想分享一段脚本给别人&#xff0c;而又不希望别人在执行的过程太过麻烦。&#xff08;如你写了一段恢复复制和右键功能的脚本&a…

多年前的树莓派 B+ 重新工作

1. 前言 最近整理房间的时候&#xff0c;发现在一块大约在 2014 年购买的树莓派&#xff0c;看了下电路板&#xff0c;型号是 b&#xff0c;看了下官网的参数&#xff1a; CPU: ARM1176JZF-S 核心 700MHz 单核RAM: 512MB 确实有点太弱了。 最近刚好想做一个家用的文件 Serve…

create-react-app 使用代理做 mock

1. 背景 很多情况下&#xff0c;为了测试需要一些接口的 mock 场景&#xff0c;基于 create-react-app 生产的项目 好处在于它内置了这块代理的能力&#xff0c;给用户提供了很大的方便。 2. 代理方式 create-react-app 默认提供了两种方式&#xff0c;关联到 webpack-dev-s…

解决写文档对于图片边框的强迫症

1. 写文档的困扰 在写文档进行配图时&#xff0c;很多时候图片是白色背景的&#xff0c;会导致文章中的图片区域附近有大量空白的感觉&#xff0c;强迫症患者很难受。 目前语雀做的是很好的&#xff0c;可以给图片加边框或者阴影&#xff0c;而一些文档博客平台&#xff08;C…

实现图片本地化 ServiceWorker + IndexedDB

1. 背景 在一些安全场景&#xff0c;或者一些本地化的场景&#xff08;如本地化的 Markdown 记事本&#xff09;&#xff0c;如果有图片上传并需要查看的场景&#xff0c;在不上传到服务器的情况下&#xff0c;实现这个效果&#xff0c;通常是把图片 Base64 化&#xff0c;但编…

XState Viz 可视化和调试状态机

1. 前言 状态机的一大好处就是可以可视化状态&#xff0c;降低业务的理解成本和相互间的沟通成本。 目前 XState 官方提供的可视化工具已经做的很不错了&#xff0c;但用起来偏重&#xff0c;国内访问也比较慢。这边我再原基础上进行了优化&#xff0c;并增加了部分新功能&am…

国内高速前端 Unpkg CDN 替代方案

1. 背景 目前国内有很多 NPM 的 CDN&#xff0c;可以高速支持相关包文件的访问下载&#xff0c;如&#xff1a; BootCDN: www.bootcdn.cn七牛云: www.staticfile.org360: cdn.baomitu.com字节跳动: cdn.bytedance.com 但这些 CDN 并不全&#xff0c;很多 NPM 上的包 在这些 …

小米 12S Utra 莱卡水印生成在线工具

前言 最近看到小米 12S Utra 的发布&#xff0c;看了下详情页面&#xff0c;发现演示的照片都好看的&#xff0c;包含了品牌、设备、镜头、位置等信息&#xff0c;如下图所示&#xff1a; 作为一个摄影爱好者&#xff0c;也希望把自己的照片也输出这些信息。 但目前此类水印…

解决 Rust Tauri 1.0 构建时下载 WiX失败

Rust 啥都好&#xff0c;就是构建太慢太慢。用我的 M1 构建 Mac 应用 10 分钟内还能拿下&#xff0c;但其它普通配置的就太慢了&#xff0c;即便用 Github Actions 大约也近 30 分钟才能构建完&#xff1a; 找一台高配置的 Windows 主机&#xff0c;结果经历了长时间的编译之后…

Rust Wasm 图片转 ASCII 艺术

有一些隐藏在代码中的 ASCII 有意思的图片&#xff0c;如&#xff1a; /*__ooOoo_o8888888o88" . "88(| -_- |)O\ /O____/---\____. \\| |// ./ \\||| : |||// \/ _||||| -:- |||||_ \| | \\\ - /| | || \_| \---// |_/ |\ .-\__ -. -__/-.…

我的新书《PWA入门与实践》上市了

前言 我初接触PWA是在2017年年初&#xff0c;当时参加了一个前端分享会&#xff0c;其中一个主题就是与PWA相关的&#xff0c;介绍了PWA的Service Worker和安装到桌面的能力&#xff0c;以及这门技术未来的发展趋势&#xff0c;听完这个分享后&#xff0c;我就为PWA的一些能力…