文件上传------图片
文件上传,拿上传图片做个例子
首先要写个form表单,之前是提交数据的,现在要上传文件提交图片,所以要在后面多加一个属性
然后再选择文件,最后上传
来看一下第一个页面的代码部分
运行后看一下效果
在这里不同的浏览器运行后,会出现不一样的样式,但是功能都是一样的用,点击浏览后,会弹出选择文件的窗口
随便选择一个文件
文件名就会显示在页面上,通过点击上传经过处理页面然后提交
接下来再做第二个页面 shangchuan.php
第二个页面提交的因为不是数据了,所以这里就不能用post了
可以使用files数组来取了
来看一下代码,先输出一下,看它输出的都是些什么
点击上传
出来的是数组
file数组里面能够取到的内容 tem_name 后面是文件的路径,在服务器上暂时存了个临时文件
如果常理来说只需要再做一步,把文件保存了就可以,但是做程序不能那么简单的做,得考虑各种因素,各个方面
1、控制上传文件的类型
2、控制上传文件的大小
3、防止文件名重复
修改保存的文件名 (1)用户名+时间戳+随机数+文件名 (2)流水号
使用文件夹存文件防止文件名重复 最常用的是第一种
4、保存文件
来看一下shangchuan.php 页面代码部分
<?php //var_dump($_FILES["file"]); //索引写它的name值 //判断文件上传是否出错 if($_FILES["file"]["error"]) { echo $_FILES["file"]["error"]; } else { //控制上传文件类型 if(($_FILES["file"]["type"]=="image/jpeg" || $_FILES["file"]["type"]=="image/png") && $_FILES["file"]["size"]<1024000) { //找到文件存放的位置 $filename = "./file/".date("YmdHis").$_FILES["file"]["name"]; //加 . 拼接 //转换编码格式 $filename = iconv("UTF-8","gb2312",$filename); //判断文件是否存在 if(file_exists($filename)) { echo "该文件已存在!"; } else { //保存文件 move_uploaded_file($_FILES["file"]["tmp_name"],$filename); //移动上传文件 } } else { echo "文件类型不正确"; } }
在运行前,先建个文件夹,在同一目录下
用来储存上传的图片
用第一个页面运行一下,看看能不能运行成功
点击上传
然后再去看一下那个文件夹
上传成功
注明: 如果上传的这些类型是伪造的,怎么确保保存的是上传图片,而不是随便给的一个路径
通过 就可以确保,保存的一定是上传文件
这句话是从UTF—8,转换为国标,用iconv方法就可以,如果不转换的话,有些文件名会有出现乱码的情况
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?