大家好,关于php文件上传代码很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于php代码怎么嵌入html代码的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!
一、求实现php文件上传代码
PHP上传文件非常简单,你需要一个上传的HTML文件(<FORM>),一个保存文件的PHP文件(保存),一个查询上传文件清单的工具。
真正实现完整功能的上传和管理需要使用数据库,我的网站俱乐部里面上传文件一开放很快就传了几万个文件。
最简单的方法不用数据库,可以用一个PHP文件实现,这个文件列出指定目录下的所有文件,然后提供一个上传的FORM,最后检测是否提交了FORM数据,是就保存文件到指定位置。
PHP手册第39章有关于处理这些问题的说明,我复制粘贴如下:
--------------------------------------------------------------------------------
本特性可以使用户上传文本和二进制文件。用PHP的认证和文件操作函数,可以完全控制允许哪些人上传以及文件上传后怎样处理。
PHP能够接受任何来自符合RFC-1867标准的浏览器(包括NetscapeNavigator3及更高版本,打了补丁的MicrosoftInternetExplorer3或者更高版本)上传的文件。
相关的设置:请参阅php.ini的file_uploads,upload_max_filesize,upload_tmp_dirpost_max_size以及max_input_time设置选项。
请注意PHP也支持PUT方法的文件上传,NetscapeComposer和W3C的Amaya客户端使用这种方法。请参阅对PUT方法的支持以获取更多信息。
可以如下建立一个特殊的表单来支持文件上传:
<!--Thedataencodingtype,enctype,MUSTbespecifiedasbelow-->
<formenctype="multipart/form-data"action="__URL__"method="POST">
<!--MAX_FILE_SIZEmustprecedethefileinputfield-->
<inputtype="hidden"name="MAX_FILE_SIZE"value="30000"/>
<!--Nameofinputelementdeterminesnamein$_FILESarray-->
Sendthisfile:<inputname="userfile"type="file"/>
<inputtype="submit"value="SendFile"/>
以上范例中的__URL__应该被换掉,指向一个真实的PHP文件。
MAX_FILE_SIZE隐藏字段(单位为字节)必须放在文件输入字段之前,其值为接收文件的最大尺寸。这是对浏览器的一个建议,PHP也会检查此项。在浏览器端可以简单绕过此设置,因此不要指望用此特性来阻挡大文件。实际上,PHP设置中的上传文件最大值是不会失效的。但是最好还是在表单中加上此项目,因为它可以避免用户在花时间等待上传大文件之后才发现文件过大上传失败的麻烦。
注意:要确保文件上传表单的属性是enctype="multipart/form-data",否则文件上传不了。
全局变量$_FILES自PHP4.1.0起存在(在更早的版本中用$HTTP_POST_FILES替代)。此数组包含有所有上传的文件信息。
以上范例中$_FILES数组的内容如下所示。我们假设文件上传字段的名称如上例所示,为userfile。名称可随意命名。
$_FILES['userfile']['name']
$_FILES['userfile']['type']
文件的MIME类型,如果浏览器提供此信息的话。一个例子是“image/gif”。不过此MIME类型在PHP端并不检查,因此不要想当然认为有这个值。
$_FILES['userfile']['size']
已上传文件的大小,单位为字节。
$_FILES['userfile']['tmp_name']
文件被上传后在服务端储存的临时文件名。
$_FILES['userfile']['error']
和该文件上传相关的错误代码。此项目是在PHP4.2.0版本中增加的。
文件被上传后,默认地会被储存到服务端的默认临时目录中,除非php.ini中的upload_tmp_dir设置为其它的路径。服务端的默认临时目录可以通过更改PHP运行环境的环境变量TMPDIR来重新设置,但是在PHP脚本内部通过运行putenv()函数来设置是不起作用的。该环境变量也可以用来确认其它的操作也是在上传的文件上进行的。
请查阅函数is_uploaded_file()和move_uploaded_file()以获取进一步的信息。以下范例处理由表单提供的文件上传。
//InPHPversionsearlierthan4.1.0,$HTTP_POST_FILESshouldbeusedinstead
$uploaddir='/var/www/uploads/';
$uploadfile=$uploaddir.basename($_FILES['userfile']['name']);
if(move_uploaded_file($_FILES['userfile']['tmp_name'],$uploadfile)){
echo"Fileisvalid,andwassuccessfullyuploaded.\n";
echo"Possiblefileuploadattack!\n";
echo'Hereissomemoredebugginginfo:';
接受上传文件的PHP脚本为了决定接下来要对该文件进行哪些操作,应该实现任何逻辑上必要的检查。例如可以用$_FILES['userfile']['size']变量来排除过大或过小的文件,也可以通过$_FILES['userfile']['type']变量来排除文件类型和某种标准不相符合的文件,但只把这个当作一系列检查中的第一步,因为此值完全由客户端控制而在PHP端并不检查。自PHP4.2.0起,还可以通过$_FILES['userfile']['error']变量来根据不同的错误代码来计划下一步如何处理。不管怎样,要么将该文件从临时目录中删除,要么将其移动到其它的地方。
如果表单中没有选择上传的文件,则PHP变量$_FILES['userfile']['size']的值将为0,$_FILES['userfile']['tmp_name']将为空。
如果该文件没有被移动到其它地方也没有被改名,则该文件将在表单请求结束时被删除。
PHP的HTML数组特性甚至支持文件类型。
<formaction=""method="post"enctype="multipart/form-data">
<inputtype="file"name="pictures[]"/>
<inputtype="file"name="pictures[]"/>
<inputtype="file"name="pictures[]"/>
<inputtype="submit"value="Send"/>
foreach($_FILES["pictures"]["error"]as$key=>$error){
$tmp_name=$_FILES["pictures"]["tmp_name"][$key];
$name=$_FILES["pictures"]["name"][$key];
move_uploaded_file($tmp_name,"data/$name");
--------------------------------------------------------------------------------
38.处理XForms起始页错误信息说明
二、php上传文件代码,怎么写
1、2楼和3楼给你的回答就跟SB一样,自己比你还菜,就瞎扯。我问问题的时候就是被这些SB不停骚扰导致最后无人回答了。
2、上传代码看这里(带重命名的):
3、<form action="" method="post" enctype="multipart/form-data">
4、上传文件:<input type="file" name="upLoad"><br>
5、重命名为:<input type="text" name="newName"><br>
6、<input type="submit" name="submit"><input type="reset" name="reset">
7、<br><i><small>文件上传到服务器需要一些时间</small></i><br>
8、$upLoadDir="/";//为目录变量指定目录位置
9、$upLoadError=$_FILES['upLoad']['error'];
10、$fileName=$_FILES['upLoad']['name'];
11、$fileTemName=$_FILES['upLoad']['tmp_name'];
12、$fileSize=$_FILES['upLoad']['size'];
13、$newName=$_POST['newName'];
14、 global$upLoadDir,$upLoadError,$fileName,$fileTemName,$fileSize,$fileSuffix,$newName;
15、 if($newName){//如果需要被更新文件名
16、$fileReName=$newName.".".pathinfo($fileName,PATHINFO_EXTENSION);//采用新文件名+获取文件名后缀
17、$fileReName=$fileName;//定义文件存储位置,并在文件名前加一组随机数字
18、 if($upLoadError>0){//0表示没有错误发生,文件上传成功
19、 case 1:echo"上传文件超过配置文件规定值。";break;//1表示上传的文件超过了php.ini中upload_max_filesize选项限制的值
20、 case 2:echo"上传文件超过表单约定值。";break;//2表示上传文件的大小超过了 HTML表单中 MAX_FILE_SIZE选项指定的值。
21、 case 3:echo"上传文件不完全。";break;//3表示文件只有部分被上传。
22、 case 4:echo"没有上传文件。";break;//4表示没有文件被上传。
23、 if(is_uploaded_file($fileTemName)){//确认文件通过HTTP POST上传
24、 if(!move_uploaded_file($fileTemName,($upLoadDir.$fileReName))){//如果无法将上传的文件移动到新位置
25、 echo"文件上传失败,请重新上传。";
26、 echo"文件上传成功!<br>".date("Y-m-d H:i:s")."<br>上传文件:".$fileName."<br>文件大小:".number_format(($fileSize/1024/1024),2)."Mb"."<br>重命名为:".$fileReName;
27、}else{//如果不是通过HTTP POST方式上传,则提示非法信息
28、 echo"文件".$fileName."不合法!";
29、 if(is_dir($upLoadDir)){//如果目录存在
30、 mkdir($upLoadDir);//则创建目录
31、 echo"请选择需要上传的文件。";
三、求一段php上传任意文件的代码
1、PHP文件上传是通过 PHP,可以把文件上传到服务器。
2、允许用户从表单上传文件是非常有用的。
3、请看下面这个供上传文件的 HTML表单:
4、<form action="upload_file.php" method="post"
5、enctype="multipart/form-data">
6、<label for="file">Filename:</label>
7、<input type="file" name="file" id="file"/>
8、<input type="submit" name="submit" value="Submit"/>
9、<form>标签的 enctype属性规定了在提交表单时要使用哪种内容类型。在表单需要二进制数据时,比如文件内容,请使用"multipart/form-data"。
10、<input>标签的 type="file"属性规定了应该把输入作为文件来处理。举例来说,当在浏览器中预览时,会看到输入框旁边有一个浏览按钮。
11、注释:允许用户上传文件是一个巨大的安全风险。请仅仅允许可信的用户执行文件上传操作。
12、"upload_file.php"文件含有供上传文件的代码:
13、if($_FILES["file"]["error"]> 0)
14、 echo"Error:".$_FILES["file"]["error"]."<br/>";
15、 echo"Upload:".$_FILES["file"]["name"]."<br/>";
16、 echo"Type:".$_FILES["file"]["type"]."<br/>";
17、 echo"Size:".($_FILES["file"]["size"]/ 1024)." Kb<br/>";
18、 echo"Stored in:".$_FILES["file"]["tmp_name"];
19、通过使用 PHP的全局数组$_FILES,你可以从客户计算机向远程服务器上传文件。
20、第一个参数是表单的 input name,第二个下标可以是"name","type","size","tmp_name"或"error"。就像这样:
21、$_FILES["file"]["name"]-被上传文件的名称
22、$_FILES["file"]["type"]-被上传文件的类型
23、$_FILES["file"]["size"]-被上传文件的大小,以字节计
24、$_FILES["file"]["tmp_name"]-存储在服务器的文件的临时副本的名称
25、$_FILES["file"]["error"]-由文件上传导致的错误代码
26、这是一种非常简单文件上传方式。不需要考虑文件的上传格式。
好了,本文到此结束,如果可以帮助到大家,还望关注本站哦!