php实现文件上传末班,php实现文件上传

function upload($save_path,$custom_upload_max_filesize,$key,$type=array('jpg','jpeg','gif','png','txt')){

$return_data=array();

//获取phpini配置文件里面的upload_max_filesize值

$phpini=ini_get('upload_max_filesize');

//获取phpini配置文件里面的upload_max_filesize值的单位

$phpini_unit=strtoupper(substr($phpini,-1));

//获取phpini配置文件里面的upload_max_filesize值的数字部分

$phpini_number=substr($phpini,0,-1);

//计算出转换成字节应该乘以的倍数

$phpini_multiple=get_multiple($phpini_unit);

//转换成字节

$phpini_bytes=$phpini_number*$phpini_multiple;

$custom_unit=strtoupper(substr($custom_upload_max_filesize,-1));

$custom_number=substr($custom_upload_max_filesize,0,-1);

$custom_multiple=get_multiple($custom_unit);

$custom_bytes=$custom_number*$custom_multiple;

if($custom_bytes>$phpini_bytes){

$return_data['error']='传入的$custom_upload_max_filesize大于PHP配置文件里面的'.$phpini;

$return_data['return']=false;

return $return_data;

}

$arr_errors=array(

1=>'上传的文件超过了 php.ini中 upload_max_filesize 选项限制的值',

2=>'上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值',

3=>'文件只有部分被上传',

4=>'没有文件被上传',

6=>'找不到临时文件夹',

7=>'文件写入失败'

);

if(!isset($_FILES[$key]['error'])){

$return_data['error']='由于未知原因导致,上传失败,请重试!';

$return_data['return']=false;

return $return_data;

}

if ($_FILES[$key]['error']!=0) {

$return_data['error']=$arr_errors[$_FILES['error']];

$return_data['return']=false;

return $return_data;

}

if(!is_uploaded_file($_FILES[$key]['tmp_name'])){

$return_data['error']='您上传的文件不是通过 HTTP POST方式上传的!';

$return_data['return']=false;

return $return_data;

}

if($_FILES[$key]['size']>$custom_bytes){

$return_data['error']='上传文件的大小超过了程序作者限定的'.$custom_upload_max_filesize;

$return_data['return']=false;

return $return_data;

}

$arr_filename=pathinfo($_FILES[$key]['name']);

if(!isset($arr_filename['extension'])){

$arr_filename['extension']='';

}

if(!in_array($arr_filename['extension'],$type)){

$return_data['error']='上传文件的后缀名必须是'.implode(',',$type).'这其中的一个';

$return_data['return']=false;

return $return_data;

}

if(!file_exists($save_path)){

if(!mkdir($save_path,0777,true)){

$return_data['error']='上传文件保存目录创建失败,请检查权限!';

$return_data['return']=false;

return $return_data;

}

}

$new_filename=str_replace('.','',uniqid(mt_rand(100000,999999),true));

if($arr_filename['extension']!=''){

$new_filename.=".{$arr_filename['extension']}";

}

$save_path=rtrim($save_path,'/').'/';

if(!move_uploaded_file($_FILES[$key]['tmp_name'],$save_path.$new_filename)){

$return_data['error']='临时文件移动失败,请检查权限!';

$return_data['return']=false;

return $return_data;

}

$return_data['save_path']=$save_path.$new_filename;

$return_data['filename']=$new_filename;

$return_data['return']=true;

return $return_data;

}

function get_multiple($unit){

switch ($unit){

case 'K':

$multiple=1024;

return $multiple;

case 'M':

$multiple=1024*1024;

return $multiple;

case 'G':

$multiple=1024*1024*1024;

return $multiple;

default:

return false;

}

}

header("Content-type:text/html;charset=utf-8");

if(isset($_POST['submit'])){

$upload=upload('a/b/c','2M','myfile');

if(!$upload['return']){

var_dump($upload['error']);

}else{

echo '上传成功!';

}

}

?>

上传页面

标签:文件,return,data,filename,error,false,php,上传

来源: https://www.cnblogs.com/Emily-m/p/10761001.html

当我们在使用IDEA创建文件时,可以通过自定义文件模板来快速生成我们需要的模板文件。首先,我们进入IDEA的设置,找到Editor,然后进入File and Code Templates中的File。在这里,我们可以定义我们的文件模板。我们可以在模板中预先定义好文件的内容和格式,包括文件头部注释、包名、类名等。这样,当我们创建文件时,就可以直接选择我们自定义的文件模板,然后IDEA会根据模板自动生成文件,并填充好我们定义好的内容。这样可以大大提高我们的开发效率,减少复制粘贴的操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [如何使用idea来设置文件模板,方便创建配置文件](https://blog.csdn.net/qq_39746820/article/details/123961957)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [【各种**问题系列】IDEA配置自定义文件创建模板](https://blog.csdn.net/weixin_52058417/article/details/126777945)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值