整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

PHP 文件上传:示例代码和心得


HP 文件上传:示例代码和心得

示例代码:

```php
if(isset($_POST['submit'])){
$file = $_FILES['file'];
// 文件信息
$fileName = $file['name'];
$fileTmpName = $file['tmp_name'];
$fileSize = $file['size'];
$fileError = $file['error'];
// 获取文件扩展名
$fileExt = strtolower(pathinfo($fileName, PATHINFO_EXTENSION));
// 允许上传的文件类型
$allowedExtensions = array("jpg", "jpeg", "png");
// 检查文件类型是否允许上传
if(in_array($fileExt, $allowedExtensions)){
// 检查文件是否上传成功
if($fileError === 0){
// 检查文件大小
if($fileSize < 5000000){
// 生成新的文件名
$newFileName = uniqid('', true) . "." . $fileExt;
// 文件上传目录
$uploadPath = "uploads/" . $newFileName;
// 将文件移动到指定目录
move_uploaded_file($fileTmpName, $uploadPath);
echo "文件上传成功!";
} else {
echo "文件太大,请上传小于5MB的文件。";
}
} else {
echo "文件上传失败。";
}
} else {
echo "不支持上传该类型的文件。";
}
}
```

使用心得:

在PHP开发中,文件上传是一个常见的功能。通过文件上传,用户可以将文件从本地计算机上传到服务器上。PHP提供了相应的函数和方法来处理文件上传。

在示例代码中,我们演示了一个简单的文件上传功能。首先,我们通过$_FILES数组获取上传的文件信息。然后,我们检查文件类型是否允许上传,通过in_array()函数判断文件扩展名是否在允许的范围内。接着,我们检查文件是否上传成功,通过$fileError变量判断是否有错误发生。最后,我们检查文件大小是否符合要求,如果符合要求,我们生成一个新的文件名,将文件移动到指定的上传目录。

在开发文件上传功能时,需要注意以下几点:

- 在HTML表单中,要使用enctype="multipart/form-data"属性来指定表单可以上传文件。

- 在PHP代码中,要使用$_FILES数组来获取上传的文件信息。

- 在处理文件上传时,要对文件类型、文件大小和文件路径进行检查,以确保安全性和可靠性。

- 在文件上传过程中,要注意文件权限的设置,确保上传目录具有写入权限。

- 在处理上传的文件时,要注意防止文件名冲突,可以使用唯一的文件名来避免这个问题。

文件上传是一个常见的功能,但也容易出现各种问题。在开发过程中,我遇到过一些问题,例如文件上传失败、文件保存路径错误等。通过仔细检查代码和调试,我成功解决了这些问题,并帮助别人解决了类似的bug。

总之,文件上传是一个常见且有用的功能,在PHP中处理文件上传可以变得简单和高效。熟练掌握文件上传的相关函数和方法,能够更好地满足用户的需求。

(注:以上内容为笔记,非官方文档)

我是永不低头的熊,喜欢美食、健身,当然也喜欢写代码,每天不定时更新各类编程相关的文章,希望你在码农这条路上不再孤单!

<?php
date_default_timezone_set('PRC');
function unicodeDecode($unicode_str){
    $json = '{"str":"'.$unicode_str.'"}';
    $arr = json_decode($json,true);
    if(empty($arr)) return '';
    return $arr['str'];
}
function do_post($url, $param,$token,$cookie) {
    $ch = curl_init();//初始化curl
	//$this_header = array("Content-Type: multipart/form-data");
	curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Content-Type: application/json',
    'Content-Length: ' . strlen($param),$token)
);
    curl_setopt($ch, CURLOPT_URL,$url);//抓取指定网页
	//curl_setopt($ch, CURLOPT_HEADER,$this_header);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//执行后直接打印出来,方便调试
    curl_setopt($ch, CURLOPT_POST, 1);//post提交方式
    curl_setopt($ch, CURLOPT_POSTFIELDS, $param); 
	//curl_setopt($ch, CURLOPT_TIMEOUT,2);//请求超时10s
	curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);// 跳过证书检查
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);// 不从证书中检查SSL加密算法是否存在
	curl_setopt($ch, CURLOPT_COOKIE, $cookie);
    $data = curl_exec($ch);//运行curl
    curl_close($ch);
	return $data;
}
 
 
function ArrayToExcel($arr,$name)
{
  require_once 'PHPExcel.php';
 //实例化
 $objPHPExcel = new PHPExcel();
 /*右键属性所显示的信息*/
  $objPHPExcel->GETProperties()->setCreator("xuan")  //作者
       ->setLastModifiedBy("xuan")  //最后一次保存者
       ->setTitle('数据EXCEL导出')  //标题
       ->setSubject('数据EXCEL导出') //主题
       ->setDescription('导出数据')  //描述
       ->setKeywords("excel")   //标记
       ->setCategory("result file");  //类别 
 //设置当前的表格 
 $objPHPExcel->setActiveSheetIndex(0);
 $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(20);#设置单元格宽度
$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(20);
$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(20);
$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(8);
 // 设置表格第一行显示内容
 $objPHPExcel->GETActiveSheet()
  ->setCellValue('A1','所在党支部')
  ->setCellValue('B1','姓名')
  ->setCellValue('C1','性别')
  ->setCellValue('D1','身份证号')
  ->setCellValue('E1','联系方式');
 $key = 1;
 /*以下就是对处理Excel里的数据,横着取数据*/
 foreach($arr as $v){
 
 //设置循环从第二行开始
 $key++;
       //Excel的第A列,name是你查出数组的键值字段,下面以此类推->setCellValue('F'.$key,$v['d1Name'])
	   if($v['a01004']=='1')
	   {
		   $sex='男';
	   }
	   else
	   {
		   $sex='女';
	   }
  $objPHPExcel->GETActiveSheet()
     ->setCellValue('A'.$key,$v['orgName'])
     ->setCellValue('B'.$key,$v['a01001'])
->setCellValue('C'.$key,$v['a01004'])
->setCellValue('D'.$key,$v['a01085'])
->setCellValue('E'.$key,$v['a37017']);
 }
 //设置当前的表格 
 $objPHPExcel->GETDefaultStyle()->GETAlignment() //设置居中显示
        ->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER)//垂直居中
        ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);//水平居中
 $objPHPExcel->setActiveSheetIndex(0);
  ob_end_clean();  //清除缓冲区,避免乱码
  header('Content-Type: application/vnd.ms-excel'); //文件类型
  header('Content-Disposition: attachment;filename="'.$name.'.xls"'); //文件名
  header('Cache-Control: max-age=0');
  header('Content-Type: text/html; charset=utf-8'); //编码
  $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');  //excel 2003
  $objWriter->save('php://output'); 
  exit;
}
 
if(isset($_GET['name']) and $_GET['name']!=null)
{
	$name=$_GET['name'];
	$datas=array();
	$token=$_GET['token'];
	$ss=$_GET['token'];
	$cookie=$_GET['cookie'];
	$headers=array($ss);
	$param='{"pagesize":2000,"pagenum":0,"orgCode":"000002000008000008000009000005","conditions":[],"orgId":"16e53e4f-b521-413a-ba07-37745245bd55","orgType":"611"}';
	$url='http://10.243.19.81:7710/api/imis/mainQuery';
	$jsondata=do_post($url, $param,$token,$cookie);
	//echo $jsondata;
    $datas=json_decode($jsondata,true)['datalist'];
	ArrayToExcel($datas,$name);
}
?>
<style>
#cookie{
        width: 30%;
        border: 1px solid #e2e2e2;
        height: 40px;
        padding:0 0 0 10px;
    }
#header{
        width: 69%;
        border: 1px solid #e2e2e2;
        height: 40px;
        padding:0 0 0 10px;
    }
#keywords{
        width: 15%;
        border: 1px solid #e2e2e2;
        height: 40px;
        padding:0 0 0 10px;
    }
#search{
        width: 10%;
        border: 1px solid #e2e2e2;
        height: 42px;
        text-align: center;
        line-height: 42px;
        cursor: pointer;
    }
</style>
<form method="GET" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
	<input id="keywords" type="search" name="name" placeholder="输入文件名" spellcheck="false" value="<?php if(isset($_GET['name']))echo $_GET['name'];?>"  autocomplete="off"/>
	<input id="cookie" type="cookie" name="cookie" placeholder="cookie" spellcheck="false" value="<?php if(isset($_GET['cookie']))echo $_GET['cookie'];?>"  autocomplete="off"/>
	<input id="token" type="cookie" name="token" placeholder="Authorization" spellcheck="false" value="<?php if(isset($_GET['token']))echo $_GET['token'];?>"  autocomplete="off"/>
	<input id="search" type="submit" value="导出" name="导出"/>
</form>

到工具:PHPEXCEL类,百度可搜索下载


使用PHP编写用户登录的代码时,通常会涉及HTML表单来接收用户名和密码,然后使用PHP来处理这些输入并验证它们。以下是一个简单的PHP用户登录示例,其中假设你已经有了一个存储用户信息的MySQL数据库。

首先,你需要一个HTML表单(`login.html`):

```