基本思路:
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中的图片文件名,可以先通过本地上传到服务器,
再从服务器上执行该文件即可移动文件到新的服务器

php 文件上传的基本方法的更多相关文章

  1. IIS 7 中设置文件上传大小的方法

    在IIS 6.0中设置文件上传大小的方法,就是配置如下节点: <system.web> <httpRuntime maxRequestLength="1918200&quo ...

  2. springmvc文件上传2中方法

    基于前面文章的基础上. 一.准备 需要的jar  二.配置 1.  spmvc-servlet.xml <?xml version="1.0" encoding=" ...

  3. SpringBoot图片上传(三)——调用文件上传项目的方法(同时启动两个项目)

    简单说明:图片上传有一个专门的工程A,提供了图片的上传和下载预览,工程B涉及到图片上传以及回显,都是调用的工程A的方法,言外之意就是要同时启动两个项目. 代码: //工程B的html代码 <di ...

  4. 文件上传MultipartBody使用方法

    最近有使用一个文件上传的功能,需要在请求中添加文件,一起传给服务器 Okhttp提供了这个文件添加然后上传的功能 下面给出核心的代码,然后分析一下 //多个文件上传,Filelist private ...

  5. 百度开源富文本编辑器 UEditor配置:图片上传和文件上传独立使用方法

    使用UEditor编辑器自带的插件实现图片上传和文件上传功能,这里通过配置UEditor单独使用其内置的第三方插件swfupload来实现图片和文件的上传,通过对UEditor配置轻松实现图片批量上传 ...

  6. 文件上传速度查询方法(watch工具)

    由于业务迁移,需要将大量文件拷贝到目标机器上的/mnt目录,在拷贝过程中,想要查看上传的速度,做法如下:[root@mail01 ~]# du -sh /mnt5.6G /mnt[root@mail0 ...

  7. 一个简单的excel文件上传到数据库方法

    因为以前项目中有用到过Excel导入,所以整理了一下,这是一个导入Excel数据到数据库的方法 注意:需要导入poi jar包 代码清单 /** * Excel 导入 * @param mapping ...

  8. IIS 之 通过 Web.config 修改文件上传大小限制设置方法

    在IIS 6.0中,不设置默认大小为4M,设置文件上传大小的方法,maxRequestLength(KB),executionTimeout(毫秒),配置如下节点: <system.web> ...

  9. IIS 6和IIS 7 中设置文件上传大小限制设置方法,两者是不一样的

    在IIS 6.0中设置文件上传大小的方法,只要设置httpRuntime就可以了 <system.web> <httpRuntime executionTimeout="3 ...

随机推荐

  1. 视频播放(iOS开发)

    视频播放 一.视频播放介绍(5种实现方案) AVPlayer 优点 可以自定义UI,进行控制 缺点 单纯的播放,没有控制UI,而且如果要显示播放界面,需要借助AVPlayerLayer,添加图层到需要 ...

  2. ASP.NET MVC- JSON ,Jquery, State management and Asynch controllers

    一.JSON  MVC And JQuery In case you are new to JSON please read this before moving ahead with this la ...

  3. 使用dispatch_once:创建单列

    无论是爱还是恨,你都需要单例.实际上每个iOS或Mac OS应用都至少会有UIApplication或NSApplication. 什么是单例呢?Wikipedia是如此定义的: 在软件工程中,单例是 ...

  4. PHP操作SQLITE

    一直以来.我们操作SQLITE,都是基于PHP默认的SQLITE操作模块. 今天介绍一个能够操作SQLITE2,和SQLITE3的PHP类,此为我封装的. <? php abstract cla ...

  5. IOS-Archiver文件归档(2)

    Archiver是持久化数据的一种方式,他跟 Plist的差别在于他能持久化自己定义对象.但他没Plist那么方便. Archiver默认能持久化的数据有NSNumber,NSArray,NSDict ...

  6. dmesg 程序崩溃调试

    [root@localhost log]# cat -n /root/xx.c #include <stdio.h> void func(char *p) { *p = 'p'; } in ...

  7. 标准I/O库之格式化I/O

    本篇博文内容摘自<UNIX环境高级编程>(第二版),仅作个人学习记录所用.关于本书可参考:http://www.apuebook.com/. 一.格式化输出 执行格式化输出处理的是4个pr ...

  8. oracle学习----行级锁的理解

    通过实验来理解行级锁的发生 1.创建需要的表 SQL> conn / as sysdba已连接.SQL> create table dept as select * from scott. ...

  9. Mac通过以太网共享网络

    在日常工作和学习中,需要WiFi热点而没有路由器,这个时候我们可以用我们工作的Mac来共享网络. 系统偏好设置->共享->互联网共享:设置共享来源和共享端口->WiFi选项:设置网络 ...

  10. tcl/tk实例详解——返回一个文件夹下所有文件的绝对路径

    http://blog.csdn.net/dulixin/article/details/2133840 #所有代码如下,使用注释的方式讲解脚本#修改好文件夹和保存结果路径,可以把本文件直接拷贝进tc ...