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,'个文件上传成功<br/>';
echo $up->showErrorInfo();
exit;
}
}

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.111cn.net/ 1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>

<body>
<form action="uup.php" method="post" enctype="multipart/form-data">
<p><input name="file[]" type="file" /></p>
<p><input name="file[]" type="file" /></p>
<p><input name="file[]" type="file" /></p>
<p><input name="file[]" type="file" /></p>
<input name="submit" type="submit" />
</form>
</body>
</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<count($this->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...<br/>';
foreach($this->error_info as $k=>$v){
echo ($k+1),':',$v,'<br/>';
}
}
}

function getSaveInfo()
{
return $this->save_info;
}
}

//$upload = new UploadFile('','');
//$upload = new UploadFile();
//$upload->showErrorInfo();

?>

时间: 2024-09-23 22:23:03

php多文件上传 多图片上传程序代码的相关文章

如何在上传的图片上加上版权文字

上传 很多时候需要在用户上传的图片上加上版权或者一些其他的附加文字信息,如何实现这样的功能,下面帖个简单实现的例子,起到抛砖引玉的作用.<%@ Page Language="c#" Debug="true" Trace="true"%><%@ Import Namespace="System.IO" %><%@ Import Namespace="System.Drawing"

如何在上传的图片上写字

上传 很多时候需要在用户上传的图片上加上版权或者一些其他的附加文字信息,如何实现这样的功能,下面帖个简单实现的例子,起到抛砖引玉的作用.<%@ Page Language="c#" Debug="true" Trace="true"%><%@ Import Namespace="System.IO" %><%@ Import Namespace="System.Drawing"

ASP在上传的图片上打自己的文字水印

很多时候需要在用户上传的图片上加上版权或者一些其他的附加文字信息,如何实现这样的功能,下面帖个简单实现的例子,起到抛砖引玉的作用. <%@PageLanguage="c#"Debug="true"Trace="true"%> <%@ImportNamespace="System.IO"%> <%@ImportNamespace="System.Drawing"%> <

如何在上传的图片上打自己的文字水印

很多时候需要在用户上传的图片上加上版权或者一些其他的附加文字信息,如何实现这样的功能,下面帖个简单实现的例子,起到抛砖引玉的作用. <%@PageLanguage="c#"Debug="true"Trace="true"%><%@ImportNamespace="System.IO"%><%@ImportNamespace="System.Drawing"%><%@

如何在SAE上使用Ueditor图片上传功能

SAE上是没有目录读写权限的,所以要在SAE使用Ueditor的图片上传功能需要借助SAE的Storage服务. 一.开通Storage服务 在SAE控制台开通Storage服务,并新增一个domain. 二.修改Ueditor代码 Ueditor处理上传文件的方法在DjangoUeditor/jviews.py中,上传图片的请求是由下面函数处理的 #上传附件 @csrf_exempt def UploadFile(request,uploadtype,uploadpath): ''''' 省略

ssh音乐上传-ssh图片上传与音乐上传

问题描述 ssh图片上传与音乐上传 最近在看一个图片上传的功能,想模仿实现 音乐播放器的后台音乐上传,但是 upLoadPicture()这段代码看的不是很懂,能不能稍微详细点解释一下里面的每句话和实现思想,如果我要做音乐上传的功能思路也和这个一样吗? @Controller("PictureAction") @Scope("prototype") public class PictureAction extends ActionSupport { private

jquery上传插件fineuploader上传文件使用方法(jquery图片上传插件)_jquery

特点: 1.不依赖与jquery 2.而且,好看些吧..支持很多实例,上传成功后.会有一个回调函数.比如缩略图地址显示出来  用法:   复制代码 代码如下:  <link href="http://fineuploader.com/source/fineuploader-3.9.1.min.css" rel="stylesheet" /><script src="http://fineuploader.com/source/fineup

Wordpress上一篇下一篇程序代码

很多WordPress给文章加上一篇下一篇这个功能,代码如下写法  代码如下 复制代码 <?php previous_post_link('%link'); ?> <?php next_post_link('%link'); ?> 上在的用法最此函数的最简单的用法,此函数还有更多更好的参数与用处,比喻说同分类下的下一篇文章.不显示文章标题而只是提取链接,自定义瞄点文字  代码如下 复制代码 <?php previous_post_link($format, $link, $i

js中响应上、下键enter键程序代码

 代码如下 复制代码 <script type="text/javascript" charset="utf-8">   function response(obj){    var $list = $(obj);    var $children = $list.children();    var num= $children.size();//$list  总个数    var current=0; //当前选中项    addnow()    $