- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章php图片上传类 附调用方法由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
本文实例为大家分享php图片上传类,供大家参考,具体内容如下 。
调用方法:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
<?php
header(
"Content-Type:text/html; charset=utf-8"
);
//类的实例化:
include
(
"uppoo.php"
);
//类的文件名是upoop.php
$up
=newupphoto;
$submit
=
$_POST
[
'submit'
];
if
(
$submit
==
"上传"
){
$up
->get_ph_tmpname(
$_FILES
[
'photo'
][
'tmp_name'
]);
$up
->get_ph_type(
$_FILES
[
'photo'
][
'type'
]);
$up
->get_ph_size(
$_FILES
[
'photo'
][
'size'
]);
$up
->get_ph_name(
$_FILES
[
'photo'
][
'name'
]);
$up
->save();
}
?>
//上传图片的HTML:
<form action=
"upphoto.php?action=act"
method=
"post"
enctype=
"multipart/form-data"
>
图片来源:<input type=
"file"
name=
"photo"
>
<input type=
"submit"
name=
"submit"
value=
"上传"
>
|
上传类,保存文件名称为 uppoo.php:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
|
<?php
class
upphoto{
public
$previewsize
=0.125 ;
//预览图片比例
public
$preview
=0;
//是否生成预览,是为1,否为0
public
$datetime
;
//随机数
public
$ph_name
;
//上传图片文件名
public
$ph_tmp_name
;
//图片临时文件名
public
$ph_path
=
"./userimg/"
;
//上传文件存放路径
public
$ph_type
;
//图片类型
public
$ph_size
;
//图片大小
public
$imgsize
;
//上传图片尺寸,用于判断显示比例
public
$al_ph_type
=
array
(
'image/jpg'
,
'image/jpeg'
,
'image/png'
,
'image/pjpeg'
,
'image/gif'
,
'image/bmp'
,
'image/x-png'
);
//允许上传图片类型
public
$al_ph_size
=1000000;
//允许上传文件大小
function
__construct(){
$this
->set_datatime();
}
function
set_datatime(){
$this
->datetime=
date
(
"YmdHis"
);
}
//获取文件类型
function
get_ph_type(
$phtype
){
$this
->ph_type=
$phtype
;
}
//获取文件大小
function
get_ph_size(
$phsize
){
$this
->ph_size=
$phsize
.
"<br>"
;
}
//获取上传临时文件名
function
get_ph_tmpname(
$tmp_name
){
$this
->ph_tmp_name=
$tmp_name
;
$this
->imgsize=
getimagesize
(
$tmp_name
);
}
//获取原文件名
function
get_ph_name(
$phname
){
$this
->ph_name=
$this
->ph_path.
$this
->datetime.
strrchr
(
$phname
,
"."
);
//strrchr获取文件的点最后一次出现的位置
//$this->ph_name=$this->datetime.strrchr($phname,"."); //strrchr获取文件的点最后一次出现的位置
return
$this
->ph_name;
}
// 判断上传文件存放目录
function
check_path(){
if
(!
file_exists
(
$this
->ph_path)){
mkdir
(
$this
->ph_path);
}
}
//判断上传文件是否超过允许大小
function
check_size(){
if
(
$this
->ph_size>
$this
->al_ph_size){
$this
->showerror(
"上传图片超过2000KB"
);
}
}
//判断文件类型
function
check_type(){
if
(!in_array(
$this
->ph_type,
$this
->al_ph_type)){
$this
->showerror(
"上传图片类型错误"
);
}
}
//上传图片
function
up_photo(){
if
(!move_uploaded_file(
$this
->ph_tmp_name,
$this
->ph_name)){
$this
->showerror(
"上传文件出错"
);
}
}
//图片预览
function
showphoto(){
if
(
$this
->preview==1){
if
(
$this
->imgsize[0]>2000){
$this
->imgsize[0]=
$this
->imgsize[0]*
$this
->previewsize;
$this
->imgsize[1]=
$this
->imgsize[1]*
$this
->previewsize;
}
echo
(
"<img src=\"{$this->ph_name}\" width=\"{$this->imgsize['0']}\" height=\"{$this->imgsize['1']}\">"
);
}
}
//错误提示
function
showerror(
$errorstr
){
echo
"<script language=java script>alert('$errorstr');location='java script:history.go(-1);';</script>"
;
exit
();
}
function
save(){
$this
->check_path();
$this
->check_size();
$this
->check_type();
$this
->up_photo();
$this
->showphoto();
}
}
?>
|
以上就是本文的全部内容,希望对大家学习php程序设计有所帮助.
最后此篇关于php图片上传类 附调用方法的文章就讲到这里了,如果你想了解更多关于php图片上传类 附调用方法的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
十,Spring Boot 的内容协商的详细剖析(附+Debug调试说明) @ 目录 十,Spring Boot 的内容协商的详细剖析(附+Debug调试说明) 1. 基本
八,SpringBoot Web 开发访问静态资源(附+详细源码剖析) @ 目录 八,SpringBoot Web 开发访问静态资源(附+详细源码剖析) 1. 基本介绍
在sql语句执行前 DB::enableQueryLog(); sql sql sql sql sql dd(DB::getQueryLog()); ?
本文实例讲述了PHP global全局变量的使用与注意事项。分享给大家供大家参考,具体如下: 使用global在方法里面声明外部变量为全局变量,即可以调用该变量。 示例1. global基本用法
SSO简介 定义: 传统的单站点登录访问授权机制是:登录成功后将用户信息保存在session中,sessionId保存在cookie中,每次访问需要登录访问的资源(url)时判断当前sessio
性能测试,在编写代码后,单元测试及性能测试是重要的验收点,好的性能测试可以让我们提前发现程序中存在的问题。 测试用例 在Rust中,测试通常有两部分,一部分是文档测试,一部分是模块测试。 通常我们
我正在制作一个非常简单的应用程序,它有一个输入框和一个按钮。 Input 用于输入email 使用事件处理器订阅按钮 输入电子邮件并点击按钮将进行 api 调用,(此方法有效) subscribe
我正在制作一个非常简单的应用程序,它有一个输入框和一个按钮。 Input 用于输入email 使用事件处理器订阅按钮 输入电子邮件并点击按钮将进行 api 调用,(此方法有效) subscribe
一个星期以来,我一直在努力寻找如何做到这一点,但一直无法做到。我的 html 导航栏看起来像这样。
我们经常在程序设计中用到的数组,同样在脚本中很常用。本节就详细介绍一下数组,以及哈希表在PowerShell中的使用。 数组 在PowerShell中,声明一个变量为数组时,需要使用符号&quo
方法一:先查询出所有记录,然后在逻辑层转化为拼音首字母后查询,显然傻瓜才会这么做。 方法二:在需要搜索的表中添加一个字段用于存放被检索字段内容对应的拼音,在搜索的时候同时去查询这两个字
intellij idea2021是一款java开发神器,功能丰富好用,本文提供其安装包、破解版、补丁、绿色版、激活码等下载,手把手教大家完美安全永久安装破解,亲测绝对可以永久激活。 此方法支持所有的
我在构建一个网站时遇到了一个问题,即我的 h1 内容与我的导航栏重叠。我在 css 中使用了 margin-top 标签,但它不起作用。
前言 时隔2年.(PS:其实陆陆续续在优化,不过没发博客).. .本组件又迎来了新的更新... 很久没更新博客了.生了娃,换了工作单位,太忙了..实在抱歉 NE
为什么 CLGeocoder reverseGeocodeLocation 在查找地址时返回具有不同纬度/经度的地标? 背景:就用户在 map 上“长按”以放置图钉而言,但我的代码对此进行了反向地理编
我是一名优秀的程序员,十分优秀!