实现大文件上传的办法

方法一

对php.ini进行修改

file_uploads = on; //是否允许通过http上传文件的开关(默认为开)

upload_max_filesize = 8m // PHP允许最大上传文件大小

post_max_size = 8m; //表单post提交允许最大上传文件大小

max_execution_time = 30; // php页面运行最大时间(默认30s)

max_input_time = 60; // php页面接收数据允许最大时间(默认60s)

内存限制= 8m; // php占用最大内存(默认8m)

方法二

实现大文件断点续传

思路:

将大文件看成是由多个小文件组成的(从1kb到500kb为1文件,从501kb到1000kb为2文件,以此类推;利用javascript函数slice()完成)
将这些小文件在后台组合成一个大文件(利用php函数)

引入代码

html+javascript:





断点续传



将图片拖拽到此

      
      
    0%  
    

php:

//$name=$_POST['username'];
$dir=$_POST['filename'];
$dir="uploads/".md5($dir);
file_exists($dir) or mkdir($dir,0777,true);

$path=$dir."/".$_POST['blobname'];

//print_r($_FILES["file"]);
move_uploaded_file($_FILES["file"]["tmp_name"],$path);

if(isset($_POST['lastone'])){
echo $_POST['lastone'];
$count=$_POST['lastone'];

$fp   = fopen($_POST['filename'],"abw");  
for($i=0;$i<=$count;$i++){  
    $handle = fopen($dir."/".$i,"rb");    
    fwrite($fp,fread($handle,filesize($dir."/".$i)));    
    fclose($handle);      
}  
fclose($fp);  

}

?>

你可能感兴趣的:(实现大文件上传的办法)