导航:首页 > 编程语言 > phphttp上传文件

phphttp上传文件

发布时间:2023-08-29 15:22:21

㈠ 求php怎么实现web端上传超大文件

加大PHP上传文件大小的限制,是通过修改PHP.INI文件来实现,但是这个支持是有限度的,因为WEB协议本为下载而生,超大文件的上传是FTP的专利。

PHP用超级全局变量数组$_FILES来记录文件上传相关信息的。

1.file_uploads=on/off
是否允许通过http方式上传文件
2.max_execution_time=30
允许脚本最大执行时间,超过这个时间就会报错
3.memory_limit=50M
设置脚本可以分配的最大内存量,防止失控脚本占用过多内存,此指令只有在编译时设置了
--enable-memory-limit标志的情况下才生效
4.upload_max_filesize=20M
允许上传文件的最大大小,此指令必须小于post_max_size
5.upload_tmp_dir
上传文件临时存放目录
6.post_max_size=30M
允许post方式可以接受最大大小
$_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上传文件大小限制的方法
1. 一般的文件上传,除非文件很小.就像一个5M的文件,很可能要超过一分钟才能上传完.
但在php中,默认的该页最久执行时间为 30 秒.就是说超过30秒,该脚本就停止执行.
这就导致出现 无法打开网页的情况.这时我们可以修改 max_execution_time
在php.ini里查找
max_execution_time
默认是30秒.改为
max_execution_time = 0
0表示没有限制
2. 修改 post_max_size 设定 POST 数据所允许的最大大小。此设定也影响到文件上传。
php默认的post_max_size 为2M.如果 POST 数据尺寸大于 post_max_size $_POST 和 $_FILES superglobals 便会为空.
查找 post_max_size .改为
post_max_size = 150M
3. 很多人都会改了第二步.但上传文件时最大仍然为 8M.
为什么呢.我们还要改一个参数upload_max_filesize 表示所上传的文件的最大大小。
查找upload_max_filesize,默认为8M改为
upload_max_filesize = 100M
另外要说明的是,post_max_size 大于 upload_max_filesize 为佳.

㈡ 如何利用PHP代码上传文件

上传代码看这里(带重命名的):
<form action="" method="post" enctype="multipart/form-data">
上传文件:<input type="file" name="upLoad"><br>
重命名为:<input type="text" name="newName"><br>
<input type="submit" name="submit"><input type="reset" name="reset">
</form>
<br><i><small>文件上传到服务器需要一些时间<晌誉/small></i><br>
<?php
$upLoadDir="/"; //为目录变量指定目录位置
$upLoadError=$_FILES['upLoad']['error'];
$fileName=$_FILES['upLoad']['name'];
$fileTemName=$_FILES['upLoad']['tmp_name'];
$fileSize=$_FILES['upLoad']['size'];
$newName=$_POST['newName'];
function upLoad(){
global $upLoadDir,$upLoadError,$fileName,$fileTemName,$fileSize,$fileSuffix,$newName;
if($newName){ //如果需要被更新文件名
$fileReName=$newName.".".pathinfo($fileName,PATHINFO_EXTENSION); //采用新文件名+获取文件名后缀
}else{ //如果不需要更新文件名
$fileReName=$fileName; //定义文件存储位置,并在文件名前加一组随机数字
}
if($upLoadError>0){ //0表示没有错误发生,文件上传成功
echo"错误:";
switch($upLoadError){
case 1:echo"上传文件超过配置文件规定值。";break; //1表示上传的文件超过了php.ini中upload_max_filesize选项限制的值
case 2:echo"上传文件超过表单约定值。";break; /誉首/2表示上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。
case 3:echo"上传文件不完全。";break; //3表示文件只有部分被上传。
case 4:echo"没有上传文件。";break; //4表示没有文件被上传。
}
}else{
if(is_uploaded_file($fileTemName)){ //确认文件通过HTTP POST上传
if(!move_uploaded_file($fileTemName,($upLoadDir.$fileReName))){ //如果无法将上传的庆谨数文件移动到新位置
echo"文件上传失败,请重新上传。";
}else{ //否则返回成功信息
echo"文件上传成功!<br>".date("Y-m-d H:i:s")."<br>上传文件:".$fileName."<br>文件大小:".number_format(($fileSize/1024/1024),2)."Mb"."<br>重命名为:".$fileReName;
}
}else{ //如果不是通过HTTP POST方式上传,则提示非法信息
echo"文件".$fileName."不合法!";
}
}
}
if(!empty($fileName)){
if(is_dir($upLoadDir)){ //如果目录存在
upLoad(); //则执行上传流程
}else{ //如果目录不存在
mkdir($upLoadDir); //则创建目录
upLoad(); //再执行上传流程
}
}else{
echo"请选择需要上传的文件。";
}
?>

阅读全文

与phphttp上传文件相关的资料

热点内容
加密货币交易所哪个最好 浏览:814
linux的现状 浏览:926
命令与征服叛逆者修改器 浏览:246
怎么用ios玩安卓全民枪战 浏览:668
程序员入行前后的头发 浏览:709
嵌入式图像算法 浏览:329
服务器如何访问服务器失败 浏览:875
android进度球 浏览:1001
Linux造成xfs文件夹 浏览:457
华为手机怎么修改wifi加密类型 浏览:250
服务器封口是什么意思 浏览:743
有限元分析是算法吗 浏览:901
空气压缩机性能曲线 浏览:22
京城程序员2019 浏览:406
android新系统 浏览:512
安卓80有什么bug 浏览:681
如何做单机服务器 浏览:945
校讯通查成绩怎么显示服务器异常 浏览:884
冰箱压缩机工作压力是多少 浏览:411
程序员20多平米租房 浏览:453