PHP文件上传判断file是否己选择上传文件

如下html代码如

 代码如下 复制代码

<formaction="?"method="post"enctype='multipart/form-data'>
文件上传:<inputtype="file"name="file"id="file"/>
<inputtype="submit"id="send"value="提交"/>
</form>

我们最常用的在前端简单的进行判断

 代码如下 复制代码

<script>
varsend=document.getElementById("send");
send.onclick=function(){
varfile=document.getElementById("file").value;
if(file.length<1){
alert('请选择图片');
returnfalse;
}
}
</script>

如果要做真正的安全我们需要在后台进入判断处理

 代码如下 复制代码

<?php
//判断pic文件框是否已经选择文件
if(!empty($_FILES['file']['tmp_name'])){
echo'已选择文件';
}else{
echo'请选择文件';
}
//PS:$_FILES后面的['tmp_name']一定不要忘写,它表示是一个临时的意思
?>

安例分析

js判断是比较笼统了我们只是使用了file=document.getElementById("file").value;来判断file有没有值或不为空了,这样只要输入一个数字就可以直接提交了,所以我们需要进入如上传文件的用户名限制

 代码如下 复制代码

functionCheckWorkFile()
{
varobj=document.getElementById('fuMain');
if(obj.value=='')
{
alert('请选择要上传的作业书文件');
returnfalse;
}
varstuff=obj.value.match(/^(.*)(\.)(.{1,8})$/)[3];
if(stuff!='doc')
{
alert('文件类型不正确,请选择.doc文件');
returnfalse;
}
returntrue;
}

对于php处理我们也只使用了if(!empty($_FILES['file']['tmp_name'])){来判断不为空了,其实这样也是不合理的

如我们可以如此处理

 代码如下 复制代码

function file_type($filename)
{
    $file = fopen($filename, "rb");
    $bin = fread($file, 2); //只读2字节
    fclose($file);
    $strInfo = @unpack("C2chars", $bin);
    $typeCode = intval($strInfo['chars1'].$strInfo['chars2']);
    $fileType = '';
    switch ($typeCode)
    {
        case 7790:
            $fileType = 'exe';
            break;
        case 7784:
            $fileType = 'midi';
            break;
        case 8297:
            $fileType = 'rar';
            break;       
  case 8075:
            $fileType = 'zip';
            break;
        case 255216:
            $fileType = 'jpg';
            break;
        case 7173:
            $fileType = 'gif';
            break;
        case 6677:
            $fileType = 'bmp';
            break;
        case 13780:
            $fileType = 'png';
            break;
        default:
            $fileType = 'unknown: '.$typeCode;
    }

 //Fix
 if ($strInfo['chars1']=='-1' AND $strInfo['chars2']=='-40' ) return 'jpg';
 if ($strInfo['chars1']=='-119' AND $strInfo['chars2']=='80' ) return 'png';

    return $fileType;
}

echo file_type('start.php');   // 6063 or 6033

这样我们可以限制上传文件类型的同时也给程序做了一个安全处理了哦

时间: 2024-12-20 11:56:53

PHP文件上传判断file是否己选择上传文件的相关文章

PHP文件上传判断file是否己选择上传文件的方法_php技巧

本文实例讲述了PHP文件上传判断file是否己选择上传文件的方法.分享给大家供大家参考.具体方法如下: 一个合格的程序员在实现数据入库中时我们都会有一些非常严密的过滤与数据规则,像我们文件上传时在前段要判断用户是否选择上传文件同时在后台也可判断是否有上传的文件,本文实例即对此做一较为深入的分析. 如下html代码所示: 复制代码 代码如下: <form action="?" method="post" enctype='multipart/form-data'

file控件选择上传文件确定后触发的js事件是哪个

  这篇文章主要介绍了file控件选择上传文件确定后触发了什么js事件,需要的朋友可以参考下 一直以来纠结于这个问题.今天闲来上网搜索了一下这个问题.终于知道答案.是onchange事件.经过本人测试,可用.还有说onpropertychange也可以.经chrome浏览器测试,无效果.不知道是什么原因.  

脚本-批处理修改文件,如何判断某一行是空白行

问题描述 批处理修改文件,如何判断某一行是空白行 批处理修改文件,如何判断某一行是空白行? @echo off for /f %%a in ('dir /b/s 优化版.bat') do ( if exist %%~dpa%%~na_修改后.bat del %%~dpa%%~na_修改后.bat set "var=%%a" setlocal enabledelayedexpansion for /f "tokens= delims=" %%i in ( !var!)

编程-getOpenFileNames()函数怎么能同时选择多个文件?

问题描述 getOpenFileNames()函数怎么能同时选择多个文件? getOpenFileNames()函数怎么能同时选择多个文件?会不会书上搞错了,我只能选一个 解决方案 代码没问题,按住shift或者ctrl,不可以选多个么 解决方案二: GetOpenFileName 函数打开多个选择文件

java-十万火急::Java判断服务器的文件是否存在如果不存在就上传、如果存在,在上传的时候删除文件

问题描述 十万火急::Java判断服务器的文件是否存在如果不存在就上传.如果存在,在上传的时候删除文件 我是新人没有悬赏.还希望大牛们 能帮帮我 Java判断服务器的文件是否存在如果不存在就上传.如果存在,在上传的时候删除文件完成文件上传. 解决方案 java判断文件夹是否存在并上传文件 解决方案二: 做个接口,出入文件名,判断是否存在,返回结果给你就行了

使用Commons FileUpload上传文件,如何判断用户是否上传了一个有效的文件?

问题描述 如果在文件选择框中输入一个无效的文件如d:abc,在FileUpload中如何判断此文件有效? 解决方案 解决方案二:无效是指它的格式无效还是它不存在?解决方案三:什么叫无效的文件???不存在的文件?不存在的文件你怎么上传上去??解决方案四:无效文件时指不存在的问啦解决方案五:关键是这样的,对于每个表单重点文件选择框,都会生成一个FileItem,从这个FileItem如何知道用户是否已经上传了一个文件?解决方案六:1.如果是输入路径的话,可以先判断路径是目录还是文件2.判断文件格式3

PHP判断file框是否已选择文件

  单个表单时  代码如下   <form action="?" method="post" enctype='multipart/form-data'> 文件上传:<input type="file" name="file" id="file" /> <input type="submit" id="send" value="

upload-关于js图片上传判断尺寸大小

问题描述 关于js图片上传判断尺寸大小 method="post" enctype="multipart/form-data" modelAttribute="personaLib"> 上传/form:form 页面代码如下.不知道js怎么写.求指导 解决方案 js判断图片上传js判断file文本域中待上传文件的大小与尺寸图片上传 文件类型和大小的判断

PHP文件上传问题汇总(文件大小检测、大文件上传处理)_php技巧

由于涉及到本地和服务器两方面的安全问题,所以基于input type="file"形式的页面文件上传一直处于一个很尴尬的位置.一方面,用户不希望隐私泄露,所以浏览器无法对用户在上传时选择的文件做有效的判 断.另一方面,为了服务器端的安全,减轻传输负担,系统又希望能在用户开始上传之前就将非法的文件拒之门外. 一来一去,基于原始input方式的上传,成为网络存储网站避之唯恐不及的遗留性问题,也造就了现在千奇百怪的插件.上传客户端. input方式的上传就如此之差么?当然不是.上传文件不大的