上传图片的php代码
我这个因为我本身是用于上传图片和图片的介绍,所以有上传文字的部分代码,可以不用,自行修改
需要根据自己工程更改才能用的地方:
- $ upfile=$ _FILES[“pic”]的pic要改为在html表单input框上传的name
- 定义上传后的目录
- 连接数据库的mysqli(“主机名”, “数据库的登陆账号”, “密码”, “数据库名”)
- 跳转的页面
php全代码
<?php
$upfile=$_FILES["pic"];//pic改为对应在html表单的name
$typelist=array("image/jpeg","image/jpg","image/png","image/gif");
$path="pic/";//定义一个上传后的目录
//过滤上传文件的错误号
if($upfile["error"]>0){
switch($upfile['error']){//获取错误信息
case 1:
$info="上传得文件超过了 php.ini中upload_max_filesize 选项中的最大值.";
break;
case 2:
$info="上传文件大小超过了html中MAX_FILE_SIZE 选项中的最大值.";
break;
case 3:
$info="文件只有部分被上传";
break;
case 4:
$info="没有文件被上传.";
break;
case 5:
$info="找不到临时文件夹.";
break;
case 6:
$info="文件写入失败!";
break;
}
die("上传文件错误,原因:".$info);
}
if(!in_array($upfile["type"],$typelist)){
die("上传文件类型非法!".$upfile["type"]);
}
$fileinfo=pathinfo($upfile["name"]);//解析上传文件名字
do{
$newfile=date("YmdHis").rand(1000,9999).".".$fileinfo["extension"];
}while(file_exists($path.$newfile));
//生成一个新的文件名
if(is_uploaded_file($upfile["tmp_name"]))
{
if(move_uploaded_file($upfile["tmp_name"],$path.$newfile))//文件路径和新文件名连起来成为新文件名一起上传
{
echo "文件上传成功!";
session_start();
$username=$_SESSION['login_user'];//上传文字内容,可不要
$ptime=$_POST['ptime'];//上传文字内容,可不要
$story=$_POST['story'];//上传文字内容,可不要
$connection=new mysqli("localhost", "gggg", "123456", "album");
//这里填 mysqli("主机名", "数据库的登陆账号", "密码", "数据库名")
mysqli_query($connection, "set names utf8");//使其可以上传中文内容
$connection->query("insert into picture(path,ptime,story,user)
values('$path$newfile','$ptime','$story','$username')");
//这里的sql语句自己根据实际情况定义,只要是把$path$newfile这个路径传上去就行了
header('location:managerindex.php');//选择要跳转的页面
}
else{
die("上传图片失败!");
}
}
else{
die("不是一个上传文件!");
}
?>
html的表单部分:
<input type="file" name="pic" id="picID" style="cursor: pointer;" accept="image/gif,image/jpeg,image/x-png"/>