php多图片上传程序,php多文件上传 多图片上传程序代码
多文件上传其实就包括了图片及各种文件了,下面介绍的是一款PHP多文件上传类,一共两个文件,upp.php 和 uploadFile.php,upp.php,这是前台所显示的表单文件了,默认的是四个上传文件域,我们可以手动进行修改,另外这个页面嵌套了 uploadFile.php 文件上传类,下面一起来看例子。<?php
header('content-type:text/html;charset=utf-8');
require ('uploadFile.php');
if (isset($_POST['submit'])) {
$uploads = $_FILES['file'];
$num_file = count($uploads['name']);
$up = new UploadFile($uploads, 'uploads', 1024);
$num = $up->upload();
if ($num == $num_file) {
echo '全部文件上传成功';
exit;
} else {
echo $num, '个文件上传成功
';
echo $up->showErrorInfo();
exit;
}
}
?>html>
无标题文档
文件上传类代码<?php
/*------------*/
class UploadFile {
var $user_post_file = array();
var $save_file_path = '';
var $max_file_size = '';
var $allow_type = array(
'gif',
'jpg',
'png',
'zip',
'rar',
'txt',
'doc',
'pdf'
);
var $final_file_path = '';
var $save_info = array();
var $error_info = array();
/**
*构造函数,用于初始化信息。
*
*@param Array $file
*@param String $path
*@param Integer $size
*@param Array $type
*/
function __construct($file, $path, $size = 2097152, $type = '') {
$this->user_post_file = $file;
$this->save_file_path = $path;
$this->max_file_size = $size;
if (!$type = '') {
$this->allow_type[] = $type;
}
}
/**
*
*
*@access public
*@return int
*/
function upload() {
for ($i = 0; $i user_post_file['name']); $i++) {
if ($this->user_post_file['error'][$i] == 0) { //上传文件状态正常
//获取当前文件名,临时文件名,大小,类型,扩展名
$name = $this->user_post_file['name'][$i];
$tmp_name = $this->user_post_file['tmp_name'][$i];
$size = $this->user_post_file['size'][$i];
$type = $this->user_post_file['type'][$i];
$ext_name = $this->getExtName($name);
//文件大小
if (!$this->checkSize($size)) {
$this->error_info[] = '您上传的文件:' . $name . '太大';
continue;
}
//扩展名
if (!$this->checkType($ext_name)) {
$this->error_info[] = '您上传的文件:' . $name . '不合法';
continue;
}
//非法上传
if (!is_uploaded_file($tmp_name)) {
$this->error_info[] = '您上传的文件:' . $name . '属于非法提交';
continue;
}
//
$basename = $this->getBaseName($name, "." . $ext_name);
$final_filename = $basename . '-' . time() . '-' . rand(1, 10000) . '.' . $ext_name;
$this->final_file_path = $this->save_file_path . '/' . $final_filename;
if (!move_uploaded_file($tmp_name, $this->final_file_path)) {
$this->error_info = $this->user_post_file['error'][$i];
continue;
}
//
$this->save_info[] = array(
"name" => $name,
"ext_name" => $ext_name,
"type" => $type,
"size" => $size,
"final_filename" => $final_filename,
"path" => $this->final_file_path
);
}
}
return count($this->save_info);
}
/*
*检查用户上传文件的大小时候合法
*
*@param Integer $size
*@access private
*@return boolean
*/
function checkSize($size) {
if ($size > $this->max_file_size) {
return FALSE;
}
return TRUE;
}
/*
*检查用户上传文件的类型是否合法
*
*@access private
*@return boolean
*/
function checkType($extension) {
foreach ($this->allow_type as $type) {
if (strcasecmp($extension, $type) == 0) {
return TRUE;
}
}
return FALSE;
}
/*
*获取文件的扩展名
*
*@param string $filename
*@access private
*@return string
*/
function getExtName($filename) {
$p = pathinfo($filename);
return $p['extension'];
}
/*
*获取文件名(不包括扩展名)
*
*@param string $filename
*@param string $type
*@access private
*@return boolean
*/
function getBaseName($filename, $ext_name) {
$basename = basename($filename, $ext_name);
return $basename;
}
/*
*
*
*
*/
function showErrorInfo() {
if (count($this->error_info) != 0) {
//echo 'error...
';
foreach ($this->error_info as $k => $v) {
echo ($k + 1) , ':', $v, '
';
}
}
}
function getSaveInfo() {
return $this->save_info;
}
}
//$upload = new UploadFile('','');
//$upload = new UploadFile();
//$upload->showErrorInfo();
?>
转载随意,但请附上文章地址:-)
php多图片上传程序,php多文件上传 多图片上传程序代码相关推荐
- 微信小程序上传图片及文件(上传、下载、删除及预览)
微信小程序上传附件 上传文件及图片 下载,预览.删除 自定义封装组件 哪儿用哪儿调用即可 wxml代码 <!-- <view>上传文件(我是子组件)</view> --& ...
- php 拖动多个文件上传,dropzone拖拽文件上传一次上传多个文件的方法
用dropzone插件拖拽文件上传默认情况是把一个文件拖到浏览器后就立即自动上传,参考前文<用dropzone插件拖拽文件上传>,如果需要一次上传多个文件怎么办?本文将介绍其实现方法. d ...
- 某虹网盘外链程序php源码V5.1 带图片检测
介绍: 某虹网盘外链是一款PHP网盘与外链分享程序,支持所有格式文件的上传,可以生成文件外链.图片外链.音乐视频外链,生成外链同时自动生成相应的UBB代码和HTML代码,还可支持文本.图片.音乐.视频 ...
- Struts2教程7:上传任意多个文件
2019独角兽企业重金招聘Python工程师标准>>> 一.上传单个文件 上传文件是很多Web程序都具有的功能.在Struts1.x中已经提供了用于上传文件的组件.而在Struts2 ...
- html ajax 上传进度条,ajax文件上传 带 进度条
HTML5 file 在选择上传文件的时候,根据需要可限制指定的文件类型(默认任意类型 ).在 input type="file" 加上 accept="指定要上传的文件 ...
- plupload分片上传php,plupload 大文件分片上传与PHP分片合并探索
最近老大分给我了做一个电影cms系统,其中涉及到一个功能,使用七牛云的文件上传功能.七牛javascript skd,使用起来很方便,屏蔽了许多的技术细节.如果只满足与调用sdk,那么可能工作中也就没 ...
- Struts2 - 上传任意多个文件
Struts2 - 上传任意多个文件 一.上传单个文件 在Struts1.x中已经提供了用于上传文件的组件.而在Struts2中提供了一个更为 容易操作的上传文件组件.所不同的是,Struts1.x的 ...
- x-data-spreadsheet 在线编辑excel文件,支持导入/导出/上传/读取网络 excel,合并单元格(vue版本)
1. 环境 vue:2.6.10 x-data-spreadsheet:1.1.8 less:4.0.0 less-loader:7.1.0 xlsx:0.15.1 axios:0.18.1 2. 优 ...
- 非常好的新版网盘系统,是一款PHP网盘与外链分享程序,支持文件预览
这是一款PHP网盘与外链分享程序,支持所有格式文件的上传, 可以生成文件外链.图片外链.音乐视频外链,生成外链同时自动生成相应的UBB代码和HTML代码, 还可支持文本.图片.音乐.视频在线预览,这不 ...
- .md文件中插入本地图片并显示图片预览
文章目录 前言 一.图片文件上传到gitee图片仓库 1:获取图片网址 (1).注册gitee,建立gitee图片仓库 (2)上传图片至gitee图片仓库 2.修改图片网址,插入到md文件中并预览 ( ...
最新文章
- 构建高性能J2EE应用的五种核心策略
- 一些常见去除恶意软件的东东
- 使用 C# 开发浏览器扩展
- 天融信网闸web界面登录方式_有颜值更有才华,乘风破浪的天融信面板AP接受硬核实测...
- 一篇文章帮你梳理清楚API设计时需要考虑的几个关键点
- Python str方法
- 怎么注册免费苹果开发者账号?
- HTML中如何使用JavaScript创建链接?
- Unity创建渐变背景
- unity材质球发光_Unity3D - 发光材质(Emissive Materials)
- java xml 小于等于_MyBatis中xml文件中的大于 大于等于 小于 小于等于 写法
- scrapy入门小案例--爬取电影天堂最新电影下载地址
- AI三驾马车之深度学习框架
- 查找相交链表相交节点
- Cordova Android 问题
- LAMP架构 【2】
- MapReduce之单词统计
- 一些与OWL相关的推理机的区别(如:Jess、Jena、Pellet等)
- 2021年中国钢丝锤钻市场趋势报告、技术动态创新及2027年市场预测
- R语言-机器学习概述