php上传只限上传TXT,php文件上传

一.首先看看html的form表单结构

form表单需要定义method的属性的值,可以为2种:get和post;

get是把参数列表加到对应的form表单的URL中,传输文件大小受限制,安全性低;post的传输是我们看不见的过程,安全性高,传输大小不受限制。

注意:一定要加上enctype属性,文件才能上传

二. php $_FILES

$_FILES 和 $_POST、 $_GET一样都是数组,当获取form表单中文本信息时,使用form表单所对应的mathod的值($_POST和 $_GET);当获取file文件时使用$_FILES。

$_FILES的参数

name 上传的原文件名,不代表是文件,仅仅是字符串

tmp_name 文件上传到服务器的临时的文件名,上传后的文件位于该位置,这个是文件

type 上传的我文件类型

size 上传的文件大小

error 上传的文件错误信息

三.文件拷贝与保存

copy() 文件上传后,需要将临时文件copy到永久存放位置,否则程序结束后,会自动删除该文件;

move_uploaded_file() 只拷贝上传的文件 安全性高

if(!empty($_FILES)){

// 只能上传图片类型文件 jpg png gif

$type = $_FILES['photo']['type'];

if($type == "image/jpeg" || $type == "image/jpg" || $type == "image/gif"){

// 将图片以原名保存

move_uploaded_file($type,$_FILES['photo']['name']);

}

}

四.应用小例子

做个菜单管理后台;

需求:可以在管理页面上上传菜谱的照片,设定菜谱,及价格,并且记录到menu.txt文件上

由于步骤较多,我们可以把每个模块封装成对应的函数

// 上传图片

function upload($upfile){

// 限制上传文件的类型为图片格式

if($upfile['type'] == "image/jpg" || $upfile['type'] == "image/jpeg" || $upfile['type'] == "image/png"){

if(move_uploaded_file($upfile['tmp_name'],$upfile['name'])){

return $upfile['name'];

}else{

return false;

}

}

// 存储

function saveMenu($cai,$price,$src){

$fp = fopen("menu.txt","a+");

$line = $cai." ".$price." ".$src."\n";

fwrite($fp,$line);

fclose($fp);

}

// 读出数据放到一个数组里

$menuList = outMenu();

function outMenu(){

$fp = fopen("menu.txt","a+");

$line = array();

while(!feof($fp)){

$line[] = fgets($fp);

}

return $line;

}

?>

点击提交时,调用函数实现功能

// 判断是否提交

if(!empty($_POST['submit'])){

// 调用upload函数判断是否上传文件

$filename = upload($_FILES['menu']);

if($filename){

$caiName = htmlspecialchars($_POST['cai']);

$price = htmlspecialchars($_POST['price']);

$src = $_FILES['menu']['name'];

//将需要的数据保存到menu.txt文件上

saveMenu($caiName,$price,$src);

}

}

3.form的表单结构

注意看嵌套php的部分,使用foreach遍历保存数据的数组$menuList,将数组中的图片路径,菜名,价格等信息赋值给HTML标签

菜名:

价格:

照片

菜名

价格

<?php foreach($menuList as $key => $val){

$menus = explode(" ",$val);

if(!empty($menus[0])){

?>

=$menus[0]?>

=$menus[1]?>

�运行结果(忽略页面样式的不好看~_~)

aa636159d3d3

结果图.png

对应生成的menu.txt文件

aa636159d3d3

文件内容.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值