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中的图片文件名,可以先通过本地上传到服务器,
再从服务器上执行该文件即可移动文件到新的服务器
php 文件上传的基本方法的更多相关文章
- IIS 7 中设置文件上传大小的方法
在IIS 6.0中设置文件上传大小的方法,就是配置如下节点: <system.web> <httpRuntime maxRequestLength="1918200&quo ...
- springmvc文件上传2中方法
基于前面文章的基础上. 一.准备 需要的jar 二.配置 1. spmvc-servlet.xml <?xml version="1.0" encoding=" ...
- SpringBoot图片上传(三)——调用文件上传项目的方法(同时启动两个项目)
简单说明:图片上传有一个专门的工程A,提供了图片的上传和下载预览,工程B涉及到图片上传以及回显,都是调用的工程A的方法,言外之意就是要同时启动两个项目. 代码: //工程B的html代码 <di ...
- 文件上传MultipartBody使用方法
最近有使用一个文件上传的功能,需要在请求中添加文件,一起传给服务器 Okhttp提供了这个文件添加然后上传的功能 下面给出核心的代码,然后分析一下 //多个文件上传,Filelist private ...
- 百度开源富文本编辑器 UEditor配置:图片上传和文件上传独立使用方法
使用UEditor编辑器自带的插件实现图片上传和文件上传功能,这里通过配置UEditor单独使用其内置的第三方插件swfupload来实现图片和文件的上传,通过对UEditor配置轻松实现图片批量上传 ...
- 文件上传速度查询方法(watch工具)
由于业务迁移,需要将大量文件拷贝到目标机器上的/mnt目录,在拷贝过程中,想要查看上传的速度,做法如下:[root@mail01 ~]# du -sh /mnt5.6G /mnt[root@mail0 ...
- 一个简单的excel文件上传到数据库方法
因为以前项目中有用到过Excel导入,所以整理了一下,这是一个导入Excel数据到数据库的方法 注意:需要导入poi jar包 代码清单 /** * Excel 导入 * @param mapping ...
- IIS 之 通过 Web.config 修改文件上传大小限制设置方法
在IIS 6.0中,不设置默认大小为4M,设置文件上传大小的方法,maxRequestLength(KB),executionTimeout(毫秒),配置如下节点: <system.web> ...
- IIS 6和IIS 7 中设置文件上传大小限制设置方法,两者是不一样的
在IIS 6.0中设置文件上传大小的方法,只要设置httpRuntime就可以了 <system.web> <httpRuntime executionTimeout="3 ...
随机推荐
- SQLite 入门教程(二)创建、修改、删除表 (转)
转于 SQLite 入门教程(二)创建.修改.删除表 一.数据库定义语言 DDL 在关系型数据库中,数据库中的表 Table.视图 View.索引 Index.关系 Relationship 和触发器 ...
- CopyU!SW新版发布!
CopyU!SW新版发布,版本号为:2.1.412.213 主要更新内容如下: 此版本(2.1.412.213)主要作了如下更新: 1.修复了CopyU!SW版本中的运行模式规则的设定错 ...
- Oracle VM Virtual 下CentOS不能自动获取IP地址
在CentOS配置网卡开机自动获取IP地址: vi /etc/sysconfig/network-scripts/ifcfg-eth0 将 ONBOOT="no" 改为 ONBOO ...
- orczhou----MYSQL
https://yq.aliyun.com/users/1597777588650149?spm=5176.blog11192.yqblogcon1.2.5mdGQb
- yum在线升级
RPM优点 由於 RPM 是透过预先编译并打包成为 RPM 文件格式后,再加以安装的一种方式,并且还能够进行数据库的记载. 所以 RPM 有以下的优点: RPM 内含已经编译过的程序与配置档等数据,可 ...
- android自定义View之仿通讯录侧边栏滑动,实现A-Z字母检索
我们的手机通讯录一般都有这样的效果,如下图: OK,这种效果大家都见得多了,基本上所有的android手机通讯录都有这样的效果.那我们今天就来看看这个效果该怎么实现. 一.概述 1.页面功能分析 整体 ...
- 详解ExplosionField的使用,实现View的粉碎效果
小米平板卸载软件的时候,会有一个粉碎的效果,看起来很拉风,GitHub上有一个开源控件可以实现这个效果,我们一起来看看.先来看看效果图: 看起来不错吧,那我们今天就来详细说说ExplosionFiel ...
- Java基础知识强化之集合框架笔记65:Map集合之集合多层嵌套的数据分析
1. 为了更符合要求: 这次的数据就看成是学生对象. 传智播客 bj 北京校区 jc 基础班 林青霞 27 风清扬 30 jy 就业班 赵雅芝 28 武鑫 29 sh 上海 ...
- 正则表达式 和 junit测试
需要知道一些常规的正则表达式语句,然后可以仿照规则写出一下正则表达式语句.然后是关于junit测试. 知道了一个之前看过的文档,然后有功夫就看一下那个文档就可以,或者后面找时间搜索一下. 正则表达式是 ...
- addEventListener 用法
addEventListener 用于注册事件处理程序,IE 中为 attachEvent,我们为什么讲 addEventListener 而不讲 attachEvent 呢?一来 attachEve ...