zoukankan      html  css  js  c++  java
  • php 文件上传的基本方法

    基本思路:
    1。HTML表单中 form中的enctype必为enctype="multipart/form-data",method = post 设置提交数据中的type = file
    2。在处理页面中用$_FILES['upfile']( upfile 为type=file中的name名称);
    3。用is_uploaded_file($_FILES['upflie']['tmp_name'])判断是不是用http post上传
    4。用$_FILES['upfile']['error']判断是否没有出错

    5。如果在上面的都正确,用move_uploaded_file($_FILES['upfile']['tmp_name'], $newfilename)转移到新的位置,如果成功返回true,否则为false



    以下是提交表单 html表单
    <form method="post" action="1.php" enctype="multipart/form-data">
    <input type="file" name="upfile" value="上传" /><br />
    <input type="submit" name="Submit" value="Submit" />
    </form>
    以下处理表单的文件 1.php


    $_FILES['upfile'][name]  文件名称
    $_FILES['upfile'][type]  文件类型
    $_FILES['upfile'][size]  文件大小
    $_FILES['upfile'][tmp_name] 文件临时目录,用于move_uploaded_file
    $_FILES['upfile'][error]  文件错误提示:其返回值如下:
        0 ==> 没有发生错误,上传成功
        1 ==> 上传文件超过php.ini中的最大大小
        2 ==> 上传文件大小超过 html表单中的大小
        3 ==> 文件只有部分上传
        4 ==> 没有文件被上传
        6 ==> 找不到临时文件夹
        7 ==> 文件写入失败 php 5.1.0以上的版本用
        =========================================
    判断是不是通过 http post 上传的函数,是返回true,不是返回false:
    bool is_uploaded_file($filename) //$filename 为临时目录名称 $_FILES['upfile']['tmp_name'];
    ==========================
    判断是否成功转移,成功返回true,失败返回false:
    bool move_uploaded_file($filename, $newfilename); //$filename 为临时目录名称 $_FILES['upfile']['tmp_name']; $newfilename 新文件名称

    <?php
    /*
    if(is_uploaded_file($_FILES['upfile']['tmp_name'])){
        if($_FILES['upfile']['error'] == 0){
            if(move_uploaded_file($_FILES['upfile']['tmp_name'], 'ok/100.jpg')){
                echo '成功上传';
            }else{
                echo '上传失败,不能转移文件到相应的文件';
            }
        }else if($_FILES['upfile']['error'] == 1){
            echo '上传文件超过php.ini中的最大大小';
        }else if($_FILES['upfile']['error'] == 2){
            echo '上传文件大小超过 html表单中的大小';
        }else if($_FILES['upfile']['error'] == 3){
            echo '文件只有部分上传';
        }else if($_FILES['upfile']['error'] == 4){
            echo '没有文件被上传';
        }else if($_FILES['upfile']['error'] == 6){
            echo '找不到临时文件夹';
        }else{
            echo '文件写入失败!';
        }
    }
    */
    ?>

    一般图片存放在独立的服务器,也方便上传到cdn,
    方法可这样实现:as:
    http://www.pic.com/pic.php

    <?php
    header('content-type:text/html;charset=utf8');
    $ch = curl_init();
    //加@符号curl就会把它当成是文件上传处理
    $data = array('img'=>'@'. dirname(__FILE__).'/图片名称');
    curl_setopt($ch,CURLOPT_URL,"图片服务器的url");
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
    curl_setopt($ch,CURLOPT_POST,true);
    curl_setopt($ch,CURLOPT_POSTFIELDS,$data);
    $result = curl_exec($ch);
    curl_close($ch);
    print_r(json_decode($result));
    ?>

    图片服务器的url:as :
    http://static.pic.com/pic.php

    <?php
    if($_FILES){
     $filename = $_FILES['img']['name'];
     $tmpname = $_FILES['img']['tmp_name'];
     if(move_uploaded_file($tmpname,dirname(__FILE__).'/upload/'.$filename)){
      echo json_encode($filename);
     }else{
      $data = json_encode($_FILES);
      echo $data;
     }
    }
    ?>

    www.pic.com/pic.php中的图片文件名,可以先通过本地上传到服务器,
    再从服务器上执行该文件即可移动文件到新的服务器

  • 相关阅读:
    备份一些觉得很有用的网站或者资料或者新的一些属性方法技术
    ios下iphone的plus下
    四川大学2008年数学分析考研试题
    四川大学2007年数学分析考研试题
    四川大学2006年数学分析考研试题
    四川大学2005年数学分析考研试题
    四川大学2003年数学分析考研试题
    四川大学2002年数学分析考研试题
    四川大学2001年数学分析考研试题
    四川大学2000年数学分析考研试题
  • 原文地址:https://www.cnblogs.com/lin3615/p/3543540.html
Copyright © 2011-2022 走看看