这个问题一直困扰了我好几天,终于在今天让我给解决了,难以掩饰的激动。

其实在之前没有接触到这种问题,只是表单提交数据而已,再就是图片,四种类型同时提交还真是没遇到过,做了一个系统,其中有一个功能就是提交这四种类型的数据,我只能把这个功能拿到最后来做,就在这几天所有功能都做完了,只剩下了这一个功能,我真的很闹心,这几天睡觉都睡的不踏实,各种的表单提交,做梦也是表单提交,醒来后我在想我的内心原来那么脆弱么,一点压力都承受不住?

事实还好,不管怎么样问题都被解决了

也很感谢博客园的一位哥哥,指点了我,远程帮我改了一下环境配置,解决了最关键的问题。

废话就不多说了,下面来看一下代码和效果图吧

只为了实现功能,所以写的很简单

提交视频有个前提就是要改一下php的配置文件,找到这个文件,改一下它规定文件的最大mb就可以了

这个必须要改,不改的话,视频是传不过去的

接下来看一下html的代码

运行起来就是这种效果

接下来写它的处理页面

写之前先打印一下。看看能不能把数据都能传过来

在它的处理页面

写完后保存一下

然后在运行的第一个页面,填充上数据

因为只打印了图片、音乐、视频、所以文字可以先不填

点击上传

数据可以被成功传过来,这样我们就成功了一大半了

下面再来分别写这三类文件

//       图片
//判断文件上传是否出错
if($_FILES["file"]["error"])
{
echo $_FILES["file"]["error"];
}
else
{
//控制上传文件类型
if(($_FILES["file"]["type"]=="image/jpeg" || $_FILES["file"]["type"]=="image/png") && $_FILES["file"]["size"]<1024000)
{
//找到文件存放的位置
$filename = "./file/".date("YmdHis").$_FILES["file"]["name"]; //加 . 拼接
//转换编码格式
$filename = iconv("UTF-8","gb2312",$filename);
//判断文件是否存在
if(file_exists($filename))
{
echo "该文件已存在!";
}
else
{
//保存文件
move_uploaded_file($_FILES["file"]["tmp_name"],$filename); //移动上传文件
$tp = $filename;
}
}
else
{
echo "文件类型不正确";
}
}
if($_FILES["file1"]["error"])
{
echo $_FILES["file1"]["error"];
}
else
{
//控制上传文件类型
if(($_FILES["file1"]["type"]=="audio/mpeg" || $_FILES["file1"]["type"]=="mp3/mp3") && $_FILES["file1"]["size"]<5000000)
{
//找到文件存放的位置
$file1name = "./file/".date("YmdHis").$_FILES["file1"]["name"]; //加 . 拼接
//转换编码格式
$file1name = iconv("UTF-8","gb2312",$file1name);
//判断文件是否存在
if(file_exists($file1name))
{
echo "该文件已存在!";
}
else
{
//保存文件
move_uploaded_file($_FILES["file1"]["tmp_name"],$file1name); //移动上传文件
$yy = $file1name;
}
}
else
{
echo "文件类型不正确";
}
} // 视频
//判断文件上传是否出错
if($_FILES["file2"]["error"])
{
echo $_FILES["file2"]["error"];
}
else
{
//控制上传文件类型
if(($_FILES["file2"]["type"]=="video/mp4" || $_FILES["file2"]["type"]=="mp4/mp4") && $_FILES["file2"]["size"]<500000000)
{
//找到文件存放的位置
$file2name = "./file/".date("YmdHis").$_FILES["file2"]["name"]; //加 . 拼接
//转换编码格式
$file2name = iconv("UTF-8","gb2312",$file2name);
//判断文件是否存在
if(file_exists($file2name))
{
echo "该文件已存在!";
}
else
{
//保存文件
move_uploaded_file($_FILES["file2"]["tmp_name"],$file2name); //移动上传文件
$sp = $file2name;
}
}
else
{
echo "文件类型不正确";
}
}

这里主要文件类型是你刚才打印 出来的type  ,如果刚才提交的不是MP4格式的文件,则它输出的类型也不一样,如图

点击上传

这里出现的type就是另一种类型

所以你想提交哪种类型的,就一定对应好,否则会提示文件类型不正确的

接下来写一下完整的处理页面的代码吧

<?php
$wz = $_POST["wz"];
//var_dump($_FILES["file"]); //索引写它的name值
//var_dump($_FILES["file1"]);
//var_dump($_FILES["file2"]);
include("DBDA.php");
$dx = new DBDA(); // 图片
//判断文件上传是否出错
if($_FILES["file"]["error"])
{
echo $_FILES["file"]["error"];
}
else
{
//控制上传文件类型
if(($_FILES["file"]["type"]=="image/jpeg" || $_FILES["file"]["type"]=="image/png") && $_FILES["file"]["size"]<1024000)
{
//找到文件存放的位置
$filename = "./file/".date("YmdHis").$_FILES["file"]["name"]; //加 . 拼接
//转换编码格式
$filename = iconv("UTF-8","gb2312",$filename);
//判断文件是否存在
if(file_exists($filename))
{
echo "该文件已存在!";
}
else
{
//保存文件
move_uploaded_file($_FILES["file"]["tmp_name"],$filename); //移动上传文件
$tp = $filename;
}
}
else
{
echo "文件类型不正确";
}
}
if($_FILES["file1"]["error"])
{
echo $_FILES["file1"]["error"];
}
else
{
//控制上传文件类型
if(($_FILES["file1"]["type"]=="audio/mpeg" || $_FILES["file1"]["type"]=="mp3/mp3") && $_FILES["file1"]["size"]<5000000)
{
//找到文件存放的位置
$file1name = "./file/".date("YmdHis").$_FILES["file1"]["name"]; //加 . 拼接
//转换编码格式
$file1name = iconv("UTF-8","gb2312",$file1name);
//判断文件是否存在
if(file_exists($file1name))
{
echo "该文件已存在!";
}
else
{
//保存文件
move_uploaded_file($_FILES["file1"]["tmp_name"],$file1name); //移动上传文件
$yy = $file1name;
}
}
else
{
echo "文件类型不正确";
}
} // 视频
//判断文件上传是否出错
if($_FILES["file2"]["error"])
{
echo $_FILES["file2"]["error"];
}
else
{
//控制上传文件类型
if(($_FILES["file2"]["type"]=="application/octet-stream" || $_FILES["file2"]["type"]=="flv/qsv") && $_FILES["file2"]["size"]<500000000)
{
//找到文件存放的位置
$file2name = "./file/".date("YmdHis").$_FILES["file2"]["name"]; //加 . 拼接
//转换编码格式
$file2name = iconv("UTF-8","gb2312",$file2name);
//判断文件是否存在
if(file_exists($file2name))
{
echo "该文件已存在!";
}
else
{
//保存文件
move_uploaded_file($_FILES["file2"]["tmp_name"],$file2name); //移动上传文件
$sp = $file2name;
}
}
else
{
echo "文件类型不正确";
}
} $sql = "insert into tp values('','{$tp}','{$yy}','{$sp}','{$wz}')";
$r = $dx->Query($sql,0);
if($r)
{
echo "提交成功"; }
else
{
echo "提交失败";
}

你在写之前最好打印一下你要提交视频的类型是什么,还有音乐也是

我所用的数据库是这个

还有一点很重要的是,文件名不要含有汉字,。

在同一目录下新建一个file文件夹,你所有提交的文件将都会保存在这个文件夹里

下面来试一下吧

点击上传

提交成功

看一下数据库里

添加成功!

如果需要的话,把这些数据遍历读出就可以了。

php表单提交 图片、音乐、视频、文字,四种类型共同提交到数据库的更多相关文章

  1. java模拟表单上传文件,java通过模拟post方式提交表单实现图片上传功能实例

    java模拟表单上传文件,java通过模拟post方式提交表单实现图片上传功能实例HttpClient 测试类,提供get post方法实例 package com.zdz.httpclient; i ...

  2. 第二百三十四节,Bootstrap表单和图片

    Bootstrap表单和图片 学习要点: 1.表单 2.图片 本节课我们主要学习一下 Bootstrap 表单和图片功能,通过内置的 CSS 定义,显示各 种丰富的效果. 一.表单 Bootstrap ...

  3. bootstrap之表单和图片

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. form表单元素中disabled的元素的值不会提交到服务器

    1.表单元素中disabled的元素的值不会提交到服务器,后台获取的值为null <form id="myForm" action="#" method= ...

  5. jquery.validate.js 验证表单时,在IE当中未验证就直接提交的原因

    jquery.validate.js 验证表单时,在IE当中未验证就直接提交的原因 今天利用了jquery.validate.js来验证表单,发现在火狐.谷歌浏览器当中都可以进行验证,但是在IE系列浏 ...

  6. formidable处理提交的表单或图片文件的简单介绍

    一般来说,客户端向服务端提交数据有GET和POST这两种方式,在之前的文章node.js当中的http模块与url模块的简单介绍当中我们可以知道通过req.url与url模块的配合处理可以快速得到客户 ...

  7. java模拟post方式提交表单实现图片上传【转】

     转自:http://blog.csdn.net/5iasp/article/details/8669644 模拟表单html如下:   <form action="up_result ...

  8. HTML基础(二)——表单,图片热点,网页划区和拼接

    一.表单 <form id="" name="" method="post/get" action="负责处理的服务端&qu ...

  9. Bootstrap 表单和图片 (内联表单,表单合组,水平排列,复选框和单选框,下拉列表,校验状态,添加额外的图标,控制尺寸,图片)

    一.表单 基本格式 注:只有正确设置了输入框的 type 类型,才能被赋予正确的样式. 支持的输入框控件 包括:text.password.datetime.datetime-local.date.m ...

随机推荐

  1. 解决HTML textarea 标签出现大量空格

    就是什么内容也不写,然后前面却有一堆空格 原因是 textarea标签换行了 <textarea cols=" id="serve_content" name=&q ...

  2. 如何下载github项目中的部分文件(文件夹)

    https://minhaskamal.github.io/DownGit/#/home 将你要下载的链接放进去即可.

  3. 一步到位Linux中安装配置MySQL及补坑

    Windows上安装MySQL也就不讲了,基本上一路点击下一步就可完成,现在讲讲Linux上布署Mysql,虽然也有很多网友列出了详细的步骤,可能是因为版本过老的问题导致即使按照上面一步步来也还是出现 ...

  4. 我是如何处理大并发量订单处理的 KafKa部署总结

    今天要介绍的是消息中间件KafKa,应该说是一个很牛的中间件吧,背靠Apache 与很多有名的中间件搭配起来用效果更好哦 ,为什么不用RabbitMQ,因为公司需要它. 网上已经有很多怎么用和用到哪的 ...

  5. 老李推荐:第5章3节《MonkeyRunner源码剖析》Monkey原理分析-启动运行: 启动脚本

    老李推荐:第5章3节<MonkeyRunner源码剖析>Monkey原理分析-启动运行: 启动脚本   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性 ...

  6. 1.Redis 的安装

    一.Redis 介绍 Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API. 作为Key-value型数据库,Red ...

  7. C语言枚举类型(Enum)深入理解

    在实际编程中,有些数据的取值往往是有限的,只能是非常少量的整数,并且最好为每个值都取一个名字,以方便在后续代码中使用,比如一个星期只有七天,一年只有十二个月,一个班每周有六门课程等. 以每周七天为例, ...

  8. 05 Training versus Testing

    train:A根据给定训练集D在H中选出g,使得Ein(g)约等于0: test:g在整个输入空间X上的表现要约等于在训练集D上的表现,使得Eout(g)约等于Ein(g). 如果|H|小,更易保证t ...

  9. cocoapods安装好后repo换源

    1.pod repo 然后会出现以下内容,如下是我已经换了之后的,而你的URL还是github的 master - Type: git (master) - URL:  https://git.cod ...

  10. C语言本身并不提供输入输出语句

    C语言本身并不提供输入输出语句,输入和输出操作是由函数来实现的.在C标准函数库中提供了一些输入输出函数,例如,printf函数和scanf函数.在使用他们时,千万不要误认为他们是C语言提供的“输入输出 ...