php上传文件代码
1、通过PHP,可以把文件上传到服务器。创建一个文件上传表单,下面这个供上传文件的 HTML 表单:
<html>
<body>
<formaction="upload_file.php"method="post"
enctype="multipart/form-data">
<labelfor="file">Filename:</label>
<inputtype="file"name="file"id="file"/>
<br/>
<inputtype="submit"name="submit"value="Submit"/>
</form>
</body>
</html>
2、创建上传脚本,命名为"upload_file.php" 文件含有供上传文件的代码:
<?php
if($_FILES["file"]["error"]>0)
{
echo"Error:".$_FILES["file"]["error"]."<br/>";
}
else
{
echo"Upload:".$_FILES["file"]["name"]."<br/>";
echo"Type:".$_FILES["file"]["type"]."<br/>";
echo"Size:".($_FILES["file"]["size"]/1024)."Kb<br/>";
echo"Storedin:".$_FILES["file"]["tmp_name"];
}
?>
注:通过使用 PHP 的全局数组 “$_FILES”,就可以实现从客户计算机向远程服务器上传文件。
‘贰’ PHP如何上传文件
$f_type=strtolower("swf,rar,jpg,zip,7z,iso,gif,exe,rmvb");//设置可上传的文件类型
if (!is_uploaded_file($file) || ($_FILES['photoupload']['size'] > 20000 * 1024 * 1024) )
{
$error = 'Please upload only files smaller than 2Mb!';
}
$f_name=$_FILES['photoupload']['name'];
$tmp_type=substr(strrchr($f_name,"."),1);//获取文件扩展名
$tmp_type=strtolower($tmp_type);
if(!stristr($f_type,$tmp_type)){
$error="对不起,不能上传格式为:".$tmp_type."的文件:".$f_name;
}
if(move_uploaded_file($_FILES['photoupload']['tmp_name'], $uploadfile)){
$result['result'] = 'success';
$result['size'] =$f_name."文件上传成功";
}
else{
$result['result'] = 'failed';
$result['error'] =$f_name."上传失败";
}
‘叁’ php实现:一次选择多个文件上传
参考代码如下:
<?php
$max_files=5; //最多上传文件的个数,与 up.htm 中的 input file 控件的个数相同
$up_ok_files=0; //成功上传的文件个数
$up_folder="ups"; //保存上传文件的目标文件夹
if(isset($_FILES['myfile'])){
//由于 $_FILES['myfile'] 是个数组,所以需要使用循环遍历
for($i=0;$i<$max_files;$i++){
//如果未出错
if($_FILES['myfile']['error'][$i]==0){
if(move_uploaded_file($_FILES['myfile']['tmp_name'][$i],$up_folder."/".$_FILES['myfile']['name'][$i])){
//成功上传后,计数器增 1
$up_ok_files +=1;
}
else{
echo "<h4 style='color:red;'>在服务器中保存失败</h4>";
}
}
}
echo "<h4>成功上传 ".$up_ok_files. " 个文件</h4>";
}
?>
注意:
如果对 $_FILES['myfile'] 这个数组的结构不清楚,可以在循环之前加入这句代码将其显示出来:
print_r($_FILES['myfile']);
‘肆’ php中如何实现ftp上传基础代码
p工具我们都用过是用来上传文件的,那么在php中如何用代码实现呢,下面简单介绍一个最基础最简单的列子,首先根据我们使用ftp工具来说,实现文件上传需要打开ftp工具->输入ftp地址,端口号,账号,密码登陆ftp->从本地选择相应文件上传到ftp相应目录,php中要实现这么一个简单的功能无非也是这样。
第一步:打开ftp
$ip="101.101.101.101";
$name="name";
$pwd="mima";
$con=ftp_connect($ip,"21")
or("连接失败");
第二步:登陆ftp
ftp_login($con,$name,$pwd);
第三步:上传本地test.php文件到ftp
image目录下
ftp_put($con,"image/test.php","test.php",FTP_ASCII);
此时在ftp上的image目录下可以看到test.php文件了,当然这里上传文件,可以扩展下写个上传表单,将表单附件上传ftp这样就更方便,这里只作为一个文件最基础上传ftp功能。
‘伍’ 求一段php上传任意文件的代码
PHP 文件上传 是通过 PHP,可以把文件上传到服务器。
1首先创建一个文件上传表单
允许用户从表单上传文件是非常有用的。
请看下面这个供上传文件的 HTML 表单:
<html>
<body>
<form action="upload_file.php" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file" />
<br />
<input type="submit" name="submit" value="Submit" />
</form>
</body>
</html>
请留意如下有关此表单的信息:
<form> 标签的 enctype 属性规定了在提交表单时要使用哪种内容类型。在表单需要二进制数据时,比如文件内容,请使用 "multipart/form-data"。
<input> 标签的 type="file" 属性规定了应该把输入作为文件来处理。举例来说,当在浏览器中预览时,会看到输入框旁边有一个浏览按钮。
注释:允许用户上传文件是一个巨大的安全风险。请仅仅允许可信的用户执行文件上传操作。
2:创建上传脚本
"upload_file.php" 文件含有供上传文件的代码:
<?php
if ($_FILES["file"]["error"] > 0)
{
echo "Error: " . $_FILES["file"]["error"] . "<br />";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br />";
echo "Type: " . $_FILES["file"]["type"] . "<br />";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
echo "Stored in: " . $_FILES["file"]["tmp_name"];
}
?>
通过使用 PHP 的全局数组 $_FILES,你可以从客户计算机向远程服务器上传文件。
第一个参数是表单的 input name,第二个下标可以是 "name", "type", "size", "tmp_name" 或 "error"。就像这样:
$_FILES["file"]["name"] - 被上传文件的名称
$_FILES["file"]["type"] - 被上传文件的类型
$_FILES["file"]["size"] - 被上传文件的大小,以字节计
$_FILES["file"]["tmp_name"] - 存储在服务器的文件的临时副本的名称
$_FILES["file"]["error"] - 由文件上传导致的错误代码
这是一种非常简单文件上传方式。不需要考虑文件的上传格式。
‘陆’ 我想在我的网站做个上传文件的PHP代码
你有没有PHP手册,上面有例子,你先粘贴上面的例子进行使用,遇到什么问题请粘贴代码和错误的拷屏。
另外,你是用的什么系统(DOS、UNIX?),虚拟主机一般对PHP有许多限制。
文件上传的表单:
<formenctype="multipart/form-data"action="__URL__"method="POST">
<!--MAX_FILE_-->
<inputtype="hidden"name="MAX_FILE_SIZE"value="30000"/>
<!--$_FILESarray-->
Sendthisfile:<inputname="userfile"type="file"/>
<inputtype="submit"value="SendFile"/>
</form>
接受上传保存文件的PHP代码:
<?php
$uploaddir='/var/www/uploads/';
$uploadfile=$uploaddir.basename($_FILES['userfile']['name']);
echo'<pre>';
if(move_uploaded_file($_FILES['userfile']['tmp_name'],$uploadfile)){
echo"Fileisvalid,andwassuccessfullyuploaded. ";
}else{
echo"Possiblefileuploadattack! ";
}
echo'Hereissomemoredebugginginfo:';
print_r($_FILES);
print"</pre>";
?>
‘柒’ 经典怎样通过php将本地的文件上传到服务器上
创建一个文件上传表单
允许用户从表单上传文件是非常有用的。
请看下面这个供上传文件的 HTML 表单:
<html>
<body>
<form action="upload_file.php" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file" />
<br />
<input type="submit" name="submit" value="Submit" />
</form>
</body>
</html>
请留意如下有关此表单的信息:
<form> 标签的 enctype 属性规定了在提交表单时要使用哪种内容类型。在表单需要二进制数据时,比如文件内容,请使用 "multipart/form-data"。
<input> 标签的 type="file" 属性规定了应该把输入作为文件来处理。举例来说,当在浏览器中预览时,会看到输入框旁边有一个浏览按钮。
注释:允许用户上传文件是一个巨大的安全风险。请仅仅允许可信的用户执行文件上传操作。
创建上传脚本
"upload_file.php" 文件含有供上传文件的代码:
<?php
if ($_FILES["file"]["error"] > 0)
{
echo "Error: " . $_FILES["file"]["error"] . "<br />";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br />";
echo "Type: " . $_FILES["file"]["type"] . "<br />";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
echo "Stored in: " . $_FILES["file"]["tmp_name"];
}
?>
通过使用 PHP 的全局数组 $_FILES,你可以从客户计算机向远程服务器上传文件。
第一个参数是表单的 input name,第二个下标可以是 "name", "type", "size", "tmp_name" 或 "error"。就像这样:
$_FILES["file"]["name"] - 被上传文件的名称
$_FILES["file"]["type"] - 被上传文件的类型
$_FILES["file"]["size"] - 被上传文件的大小,以字节计
$_FILES["file"]["tmp_name"] - 存储在服务器的文件的临时副本的名称
$_FILES["file"]["error"] - 由文件上传导致的错误代码
这是一种非常简单文件上传方式。基于安全方面的考虑,您应当增加有关什么用户有权上传文件的限制。
上传限制
在这个脚本中,我们增加了对文件上传的限制。用户只能上传 .gif 或 .jpeg 文件,文件大小必须小于 20 kb:
<?php
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/pjpeg"))
&& ($_FILES["file"]["size"] < 20000))
{
if ($_FILES["file"]["error"] > 0)
{
echo "Error: " . $_FILES["file"]["error"] . "<br />";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br />";
echo "Type: " . $_FILES["file"]["type"] . "<br />";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
echo "Stored in: " . $_FILES["file"]["tmp_name"];
}
}
else
{
echo "Invalid file";
}
?>
注释:对于 IE,识别 jpg 文件的类型必须是 pjpeg,对于 FireFox,必须是 jpeg。
保存被上传的文件
上面的例子在服务器的 PHP 临时文件夹创建了一个被上传文件的临时副本。
这个临时的复制文件会在脚本结束时消失。要保存被上传的文件,我们需要把它拷贝到另外的位置:
<?php
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/pjpeg"))
&& ($_FILES["file"]["size"] < 20000))
{
if ($_FILES["file"]["error"] > 0)
{
echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br />";
echo "Type: " . $_FILES["file"]["type"] . "<br />";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";
if (file_exists("upload/" . $_FILES["file"]["name"]))
{
echo $_FILES["file"]["name"] . " already exists. ";
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"],
"upload/" . $_FILES["file"]["name"]);
echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
}
}
}
else
{
echo "Invalid file";
}
?>
上面的脚本检测了是否已存在此文件,如果不存在,则把文件拷贝到指定的文件夹。
‘捌’ php 生成自动创建文件夹并上传文件的示例代码
复制代码
代码如下:
<?
session_start();
if($_SESSION['Company']=='')
{
//exit();
}
?><?php
//上传图片
$uptypes=array('image/jpg','image/jpeg','image/png','image/pjpeg','image/gif','image/bmp','application/x-shockwave-flash','image/x-png');
$max_file_size=5000000;
//上传文件大小限制,
单位BYTE
$addtime=date("Ymd",time());
$testdir="./".$addtime."/";
if(file_exists($testdir)):
else:
mkdir($testdir,0777);
endif;
$destination_folder=$addtime."/";
//上传文件路径
$imgpreview=1;
//是否生成预览图(1为生成,其他为不生成);
$imgpreviewsize=1/2;
//缩略图比例
if
($_SERVER['REQUEST_METHOD']
==
'POST')
{
if
(!is_uploaded_file($_FILES["Pic"][tmp_name]))
//是否存在文件
{
echo
"<font
color='red'>文件不存在!</font>";
exit;
}
$file
=
$_FILES["Pic"];
if($max_file_size
<
$file["size"])
//检查文件大小
{
echo
"<font
color='red'>文件太大!</font>";
exit;
}
if(!in_array($file["type"],
$uptypes))
//检查文件类型
{
echo
"<font
color='red'>只能上传图像文件或Flash!</font>";
exit;
}
if(!file_exists($destination_folder))
mkdir($destination_folder);
$filename=$file["tmp_name"];
$image_size
=
getimagesize($filename);
$pinfo=pathinfo($file["name"]);
$ftype=$pinfo[extension];
$PicName
=
time().".".$ftype;
$destination
=
$destination_folder.$PicName;
if
(file_exists($destination)
&&
$overwrite
!=
true)
{
echo
"<font
color='red'>同名文件已经存在了!</a>";
exit;
}
if(!move_uploaded_file
($filename,
$destination))
{
echo
"<font
color='red'>上传文件出错!</a>";
exit;
}
$pinfo=pathinfo($destination);
$fname=$pinfo[basename];
}
?><?
$path
=
dirname(__FILE__);
require_once($path.'/../../Mole/Factory.php');
$Factory
=
new
Factory();
$BLL_Trade
=
$Factory->FactoryTrade();
try
{
$Infor
=
new
Infor();
$Infor->Title
=
$_POST['Title'];
$Infor->Deposit
=
$_POST['Deposit'];
$Infor->Hire
=
$_POST['Hire'];
$Infor->Location
=
$_POST['Location'];
$Infor->Pic
=
$destination;
$Infor->Intro
=
$_POST['Intro'];
if($_SESSION['MemberId']
==''){
$Infor->Member->ID='';
}else
{
$Infor->Member->ID
=
$_SESSION['MemberId'];}
if($_POST['GoodsBarCode']
==''){
$Infor->Goods->BarCode
=
0;
}else
{
$Infor->Goods->BarCode
=
$_POST['GoodsBarCode'];}
$Infor->Class->ID
=
0;//日后修改
$Infor->IssueTime
=
time();
$Infor->ViewNum
=
0;
$Infor->State
=
1;//现在未定,日后修改
$Infor->Top
=
0;
$Infor->Recommend
=
0;
$Infor->BookMember->ID
=
0;
$Infor->BookTime
=
0;
$Infor->BookRemark
=
0;
$BLL_Trade->CreateInfor($Infor);
echo
'发布信息成功!';
}
catch
(Exception
$Err){
echo
$Err->getMessage();
}
?>
‘玖’ 我的php代码关于上传文件不太会
$filename=$_FILES['upfile']['tmp_name'];//要用tmp_name
$_FILES超全局变量的元素内容有:
$_FILES['file']['name']客户端文件的原名称。
$_FILES['file']['type']文件的MIME类型,需要浏览器提供该信息的支持,例如"image/gif"。
$_FILES['file']['size']已上传文件的大小,单位为字节。
$_FILES['file']['tmp_name']文件被上传后在服务端储存的临时文件名,一般是系统默认。
可以在php.ini的upload_tmp_dir指定,但用putenv()函数设置是不起作用的。
$_FILES['file']['error']该文件上传相关的错误代码
值:0;没有错误发生,文件上传成功。
值:1;上传的文件超过了php.ini中upload_max_filesize选项限制的值。
值:2;上传文件的大小超过了HTML表单中MAX_FILE_SIZE选项指定的值。
值:3;文件只有部分被上传。
值:4;没有文件被上传。
值:5;上传文件大小为0.
‘拾’ 求PHP网页上传文件代码.
自定义文件上传函数
:
<?php
/**
* 文件上传
*/
/**
* 文件上传函数
* @param $name string 表单上传框的name值
* @param $file_arr array 上传文件的类型限制
* @param $filesize int 上传文件限制其大小
* @param $path string 文件的保存路径
* @return string 成功返回 "上传成功及文件名"
*/
function uploads($name,$file_arr=array('jpg','png','gif','JPG','GIF','PNG'),$filesize=3145728,$path='uploads'){
//1、检测文件的错误信息,如果是0 就允许上传(保存)
$err=$_FILES[$name]['error'];
if($err>0){
if($err==1){
return '上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值。';
}elseif($err==2){
return '上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。 ';
}elseif($err==3){
return '文件只有部分被上传。';
}elseif($err==4){
return'没有文件上传';
}elseif($err>=5){
return '其他错误';
}
}
//2、检测文件的类型,是否是我们需要的(png、gif、jpg)
$pre=pathinfo($_FILES[$name]['name'],PATHINFO_EXTENSION);
if(!in_array($pre,$file_arr)){
return '上传的文件类型不符';
}
//3、检测文件大小
if($_FILES[$name]['size']>$filesize){
return '上传的文件太大';
}
//4、保存文件
$file_name=date('YmdHis',time()).mt_rand(1000,9999).'.'.$pre;
if(is_uploaded_file($_FILES[$name]['tmp_name'])){
move_uploaded_file($_FILES[$name]['tmp_name'], $path."/".$file_name);
return '上传成功|'.$file_name;
}else{
return "文件上传失败!";
}
}
?>