View Code

文件上传------图片

文件上传,拿上传图片做个例子

首先要写个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方法就可以,如果不转换的话,有些文件名会有出现乱码的情况

posted @   风中摇曳的小花朵  阅读(406)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示