文件上传表单<form enctype="multipart/form-data" action="URL" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="1000">
<input name="myFile" type="file">
<input type="submit" value="上传文件">
</form>
$_FILES数组内容如下:
$_FILES['myFile']['name'] 客户端文件的原名称。
$_FILES['myFile']['type'] 文件的 MIME 类型,需要浏览器提供该信息的支持,例如"image/gif"。
$_FILES['myFile']['size'] 已上传文件的大小,单位为字节。
$_FILES['myFile']['tmp_name'] 文件被上传后在服务端储存的临时文件名,一般是系统默认。可以在php.ini的upload_tmp_dir 指定,但 用 putenv() 函数设置是不起作用的。
$_FILES['myFile']['error'] 和该文件上传相关的错误代码。['error'] 是在 PHP 4.2.0 版本中增加的。下面是它的说明:(它们在PHP3.0以后成了常量)
UPLOAD_ERR_OK
值:0; 没有错误发生,文件上传成功。
UPLOAD_ERR_INI_SIZE
值:1; 上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值。
UPLOAD_ERR_FORM_SIZE
值:2; 上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。
UPLOAD_ERR_PARTIAL
值:3; 文件只有部分被上传。
UPLOAD_ERR_NO_FILE
值:4; 没有文件被上传。
值:5; 上传文件大小为0.
文件被上传结束后,默认地被存储在了临时目录中,这时您必须将它从临时目录中删除或移动到其它地方,如果没有,则会被删除。也就是不管是否上传成功,脚本执行完后临时目录里的文件肯定会被删除。所以在删除之前要用PHP的 copy() 函数将它复制到其它位置,此时,才算完成了上传文件过程。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
今天用到PHP进行文件上传,用到了如下的一段代码:<?if($upfile=="none") //没有选定文件的处理
{
echo "没有选择文件"; //显示提示信息
echo "<p>";
echo "点<a href=\"8-15.php\">这里</a>返回"; //给出返回连接
}
else //选定文件
{
$filepath="images/"; //定义路径
$filename=$filepath.$upfile_name; //新的路径及文件名
echo $upfile_name; //显示文件名
echo "<p>";
echo $upfile_size; //显示文件大小
echo "<p>";
echo $upfile_type; //显示文件类型
if(copy($upfile,$filename)) //复制文件的目标路径
{
unlink($upfile); //删除原有文件
echo "<p>";
echo "指定文件已经成功上传!";
echo "<p>";
echo "点<a href=\"8-15.php\">这里</a>返回"; //给出返回连接
}
else
{
echo "文件上传失败!";
}
}?>结果显示不出来,仔细找了下原因,原来是PHP4.0以上的版本已经不支持$upfile的用法了,改成以下的代码,便能正常上传了:)表单页面为:<form id="form1" name="form1" enctype="multipart/form-data" method="post" action="ex6pro.php">
<label>
<input name="upfile" type="file" id="upfile" />
</label>
<p>
<label>
<input type="submit" name="Submit" value="确认提交" />
</label>
<label>
<input type="reset" name="Submit2" value="重新选择" />
</label>
</p>
</form>其中的处理程序ex6pro.php改成以下内容:<?
if($_FILES[upfile][name]=="") //没有选定文件的处理
{
echo "没有选择文件"; //显示提示信息
echo "<p>";
echo "点<a href=\"ex6.php\">这里</a>返回"; //给出返回连接
}
else //选定文件
{
$filepath="images/"; //定义路径
$filename=$filepath.$_FILES[upfile][name]; //新的路径及文件名
echo $_FILES[upfile][name]; //显示文件名
echo "<p>";
echo $_FILES[upfile][size]; //显示文件大小
echo "<p>";
echo $_FILES[upfile][type]; //显示文件类型
if(copy($_FILES[upfile][tmp_name],$filename)) //复制文件的目标路径
{
unlink($_FILES[upfile][tmp_name]); //删除原有文件
echo "<p>";
echo "指定文件已经成功上传!";
echo "<p>";
echo "点<a href=\"ex6.php\">这里</a>返回"; //给出返回连接
}
else
{
echo "文件上传失败!";
}
}
?>一切OK啦!1!$_FILES
经由 HTTP POST 文件上传而提交至脚本的变量。类似于旧数组 $HTTP_POST_FILES 数组(依然有效,但反对使用)。详细信息请参阅 POST 方法上传。
$_FILES数组内容如下:
<input type="file" name="userfile">
$_FILES['userfile']['name']
客户端机器文件的原名称。
$_FILES['userfile']['type']
文件的 MIME 类型,需要浏览器提供该信息的支持,例如“image/gif”。
$_FILES['userfile']['size']
已上传文件的大小,单位为字节。
$_FILES['userfile']['tmp_name']
文件被上传后在服务端储存的临时文件名。
$_FILES['userfile']['error']
和该文件上传相关的错误代码。['error'] 是在 PHP 4.2.0 版本中增加的。
注: 在 PHP 4.1.0 版本以前该数组的名称为 $HTTP_POST_FILES,它并不像 $_FILES 一样是自动全局变量。PHP 3 不支持 $HTTP_POST_FILES 数组。
来源:http://hi.baidu.com/7book/blog/item/94f84ef383bbb4ce0b46e00a.html
<input type="hidden" name="MAX_FILE_SIZE" value="1000">
<input name="myFile" type="file">
<input type="submit" value="上传文件">
</form>
$_FILES数组内容如下:
$_FILES['myFile']['name'] 客户端文件的原名称。
$_FILES['myFile']['type'] 文件的 MIME 类型,需要浏览器提供该信息的支持,例如"image/gif"。
$_FILES['myFile']['size'] 已上传文件的大小,单位为字节。
$_FILES['myFile']['tmp_name'] 文件被上传后在服务端储存的临时文件名,一般是系统默认。可以在php.ini的upload_tmp_dir 指定,但 用 putenv() 函数设置是不起作用的。
$_FILES['myFile']['error'] 和该文件上传相关的错误代码。['error'] 是在 PHP 4.2.0 版本中增加的。下面是它的说明:(它们在PHP3.0以后成了常量)
UPLOAD_ERR_OK
值:0; 没有错误发生,文件上传成功。
UPLOAD_ERR_INI_SIZE
值:1; 上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值。
UPLOAD_ERR_FORM_SIZE
值:2; 上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。
UPLOAD_ERR_PARTIAL
值:3; 文件只有部分被上传。
UPLOAD_ERR_NO_FILE
值:4; 没有文件被上传。
值:5; 上传文件大小为0.
文件被上传结束后,默认地被存储在了临时目录中,这时您必须将它从临时目录中删除或移动到其它地方,如果没有,则会被删除。也就是不管是否上传成功,脚本执行完后临时目录里的文件肯定会被删除。所以在删除之前要用PHP的 copy() 函数将它复制到其它位置,此时,才算完成了上传文件过程。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
今天用到PHP进行文件上传,用到了如下的一段代码:<?if($upfile=="none") //没有选定文件的处理
{
echo "没有选择文件"; //显示提示信息
echo "<p>";
echo "点<a href=\"8-15.php\">这里</a>返回"; //给出返回连接
}
else //选定文件
{
$filepath="images/"; //定义路径
$filename=$filepath.$upfile_name; //新的路径及文件名
echo $upfile_name; //显示文件名
echo "<p>";
echo $upfile_size; //显示文件大小
echo "<p>";
echo $upfile_type; //显示文件类型
if(copy($upfile,$filename)) //复制文件的目标路径
{
unlink($upfile); //删除原有文件
echo "<p>";
echo "指定文件已经成功上传!";
echo "<p>";
echo "点<a href=\"8-15.php\">这里</a>返回"; //给出返回连接
}
else
{
echo "文件上传失败!";
}
}?>结果显示不出来,仔细找了下原因,原来是PHP4.0以上的版本已经不支持$upfile的用法了,改成以下的代码,便能正常上传了:)表单页面为:<form id="form1" name="form1" enctype="multipart/form-data" method="post" action="ex6pro.php">
<label>
<input name="upfile" type="file" id="upfile" />
</label>
<p>
<label>
<input type="submit" name="Submit" value="确认提交" />
</label>
<label>
<input type="reset" name="Submit2" value="重新选择" />
</label>
</p>
</form>其中的处理程序ex6pro.php改成以下内容:<?
if($_FILES[upfile][name]=="") //没有选定文件的处理
{
echo "没有选择文件"; //显示提示信息
echo "<p>";
echo "点<a href=\"ex6.php\">这里</a>返回"; //给出返回连接
}
else //选定文件
{
$filepath="images/"; //定义路径
$filename=$filepath.$_FILES[upfile][name]; //新的路径及文件名
echo $_FILES[upfile][name]; //显示文件名
echo "<p>";
echo $_FILES[upfile][size]; //显示文件大小
echo "<p>";
echo $_FILES[upfile][type]; //显示文件类型
if(copy($_FILES[upfile][tmp_name],$filename)) //复制文件的目标路径
{
unlink($_FILES[upfile][tmp_name]); //删除原有文件
echo "<p>";
echo "指定文件已经成功上传!";
echo "<p>";
echo "点<a href=\"ex6.php\">这里</a>返回"; //给出返回连接
}
else
{
echo "文件上传失败!";
}
}
?>一切OK啦!1!$_FILES
经由 HTTP POST 文件上传而提交至脚本的变量。类似于旧数组 $HTTP_POST_FILES 数组(依然有效,但反对使用)。详细信息请参阅 POST 方法上传。
$_FILES数组内容如下:
<input type="file" name="userfile">
$_FILES['userfile']['name']
客户端机器文件的原名称。
$_FILES['userfile']['type']
文件的 MIME 类型,需要浏览器提供该信息的支持,例如“image/gif”。
$_FILES['userfile']['size']
已上传文件的大小,单位为字节。
$_FILES['userfile']['tmp_name']
文件被上传后在服务端储存的临时文件名。
$_FILES['userfile']['error']
和该文件上传相关的错误代码。['error'] 是在 PHP 4.2.0 版本中增加的。
注: 在 PHP 4.1.0 版本以前该数组的名称为 $HTTP_POST_FILES,它并不像 $_FILES 一样是自动全局变量。PHP 3 不支持 $HTTP_POST_FILES 数组。
来源:http://hi.baidu.com/7book/blog/item/94f84ef383bbb4ce0b46e00a.html
作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:http://jackxiang.com/post/4161/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!
最后编辑: jackxiang 编辑于2011-4-5 04:09
评论列表