• 文件上传,判断文件错误类型


    HTML代码上传文件:

    <form action="doAction.php" method="post" enctype="multipart/form-data">
      <input type="hidden" name="MAX_FILE_SIZE" value="51200" />
      请选择上传文件:<input type="file" name="myFile" /><br />
      <input type="submit" value="上传" />
    

    doAction.php文件代码:

    <meta charset="utf-8">
    <?php
    //files
    //print_r($_FILES);
    
    $filename=$_FILES['myFile']['name'];
    $type=$_FILES['myFile']['type'];
    $tmp_name=$_FILES['myFile']['tmp_name'];
    $error=$_FILES['myFile']['error'];
    $size=$_FILES['myFile']['size'];
    
    //判断下错误信息
    if($error==UPLOAD_ERR_OK) {
    	//需要判断下文件是否是通过HTTP POST方式上传
    	//is_uploaded_file($tmp_name,$destination);
    	//$destination="uploads/".$filename;
    	$destination="uploads/".$filename;
    	if(is_uploaded_file($tmp_name)) {
    		if(move_uploaded_file($tmp_name,$destination)) {
    			$mes="文件上传成功";
    		}else {
    			$mes="文件移动失败";
    		}
    	}else {
    		$mes="文件不是通过HTTP POST方式上传上来的";
    	}
    	
    }else {
    	switch($error) {
    		case 1:
    			$mes="超过了配置文件上传文件的大小";  //  UPLOAD_ERR_INI_SIZE
    			break;
    		case 2:
    			$mes="超过了表单设置上传文件的大小";  //  UPLOAD_ERR_FORM_SIZE
    			break;
    		case 3:
    			$mes="文件部分被上传";  //  UPLOAD_ERR_PARTIAL
    			break;
    		case 4:
    			$mes="没有文件被上传";  //  UPLOAD_ERR_NO_FILE
    			break;
    		case 6:
    			$mes="没有找到临时目录";  //  UPLOAD_ERR_NO_TMP_DIR
    			break;
    		case 7:
    			$mes="文件不可写";  //UPLOAD_ERR_CANT_WRITE
    			break;
    		case 8:
    			$mes="由于扩展文件中断了文件上传";  // UPLOAD_ERR_EXTENSION
    			break;
    	}
    }
    echo $mes;
    
    //服务器端进行的配置  是在配置环境中php.ini中的配置
    //file_uploads = On  支持通过HTTP POST方式上传文件
    //;upload_tmp_dir =   临时文件保存目录
    //upload_max_filesize = 2M  默认值是2M,上传的最大大小是2M
    //post_max_size = 8M  表单以POST方式发送数据的最大值,默认8M
    
    //客户端进行配置
    //<input type="hidden" name="MAX_FILE_SIZE" value="1024" />  这里就是case 2判断是否错误的类型
    //<input type="file" name="myFile" accept="文件的MIME类型,..."/>
    

     但是需要注意的是:<input type="hidden" name="MAX_FILE_SIZE" value="1024" />在客户端限制的文件大小,懂程序的人来说,这些只要打开F12调试工具,稍微修改就大小就没用了,所以限制文件以及大小必须在服务器上进行限制。

  • 相关阅读:
    JVM理解
    ubuntu下Android反编译详细教程-apktool,dex2jar,jd-gui的使用
    Add Two Numbers
    Two Sum
    JS实现总价随数量变化而变化(顾客购买商品表单)
    族谱管理系统(孩子兄弟存储结构)
    Java登录界面的实现(注册、登录、背景图片)
    Java GUI记账本(基于Mysql&&文件存储两种版本)
    几种对栈操作的方法
    Java中的成员内部类
  • 原文地址:https://www.cnblogs.com/jacson/p/4245646.html
Copyright © 2020-2023  润新知