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