PHP上传类的相关问题

 更新时间:2016年11月25日 16:07  点击:2108

工作任务:FTP模块工作计划


相关文件

  1、表 pureftpd

  2、模块目录ftp,mod/ftp

 

     

 

 

功能需求

  3、能够批量上传文件

  4、删除目录
----------------------

  1、统计空间的大小,统计的缓存在.ftpquota,格式:文件数量,目录容量

  2、增加ftp,控件 的容量

  3、关闭ftp,mv /file/webroot/91.tc/p/pa/paladin /file/webroot/91.tc/p/pa/paladin.close

  4、删除ftp文件

----------------------------------

写入FLASH的FTP上传控件:

        <table width="90%" border="0" align="center" cellpadding="0" cellspacing="0">
        <tr>
          <td height=26 class=font1><strong>图片上传</strong><font color="#FF0000">(可一次性上传1-8张,格式为jpggifpng,大小限制为1M,标题为空时取图片文件名)</font></td>
        </tr>
      </table>
   
   <table width="100%" border="0" cellspacing="0" cellpadding="0" align="center">
   <tr>
            <td class="font1" align="center">
    <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="470" height="350">
        <param name="movie" value="image/upload.swf?

<

在网上找了一些资料,都是一堆费话,实现就下面一句就可以了.其它方法目前不知道.

$charset=''gbd'';

$conn=数据库链接;

@mysql_query("SET NAMES ".$charset."",$conn);  



< 代码实现了一个简单的多进程管理机制,比向WEB服务器发送多个请求要实现多进程要方便很多。只能使用在cli模式。可以用在特殊场合,如邮件发送任务等。
资源的共享访问使用了文件锁,并不是很可靠,主要是为了能够在Windwos下使用,如果确实有必要可以考虑自己改用相应的信号灯机制(这个扩展只能用于xUNIX)。

实例
复制PHP内容到剪贴板
PHP代码:
define(''DIR_PHP_EXEC''''php'');
define(''DIR_MAIN_EXEC''__FILE__
);
define(''DIR_TMP''''/tmp''
);
require_once(
''my_process.php''
);

class 
pp extends my_process_base 
{
    public function 
run($param /* 文件上传类 */
class Upload
{
    
public $InputName;    // 文件上传域控件名
    
    
/**  
    * 允许上传的文件类型
    * 形式为 array(''image/jpeg'', ''image/png'', ''image/gif'') 或包含此类数组的数组(与每个上传域控件对应)
    
*/
    
public $FileType;
    
    
/**  
    * 最大上传文件大小(单位:byte)
    * 形式为 array(''image'' => $size, ''audio'' => $size)(表示每种应用文件类型所对应的上传大小) 或包含此类数组的数组(与每个上传域控件对应)或一数值(表示所有上传文件均限制在此大小之下)
    
*/
    
public $FileMaxSize
    
    
public $FileSavePath;  // 文件保存路径(可为数组形式,表示不同上传域上传文件到不同的路径)
    public $FileSaveName;  // 文件保存名(不包含后缀名)(可为数组形式,表示不同上传域上传文件保存的不同名称)
    public $NoteFileFalse// 文件错误提示
    public $NoteFileType;  // 文件类型不符提示
    public $NoteFileSize;  // 文件大小超出提示
    
    
/* 上传文件并返回文件名信息(包含后缀名) */
    
public function UploadFile()
    {
        
$this->CheckFile(); // 检验文件
        $file = $_FILES[$this->InputName];
        
$file_number = count($file[''name'']); // 要上传的文件数
        $file_save_full_name = array(); // 文件保存名(包含后缀名)
        
        
for ($i = 0$i < $file_number$i++)
        {
            
$name = $file[''name''][$i];
            
            
if (!empty($name)) // 文件不为空
            {
                
/* 确定文件保存路径 */
                
if (is_array($this->FileSavePath))
                {
                    
$file_save_path = $this->FileSavePath[$i];
                }
                
else 
                {
                    
$file_save_path = $this->FileSavePath;
                }
                
                
/* 确定文件保存名(不包含后缀名) */
                
if (is_array($this->FileSaveName))
                {
                    
$file_save_name = $this->FileSaveName[$i];
                }
                
else 
                {
                    
$file_save_name = $this->FileSaveName;
                }
                
                
/* 开始保存 */
                
$this->CreatePath($file_save_path); // 如果路径不存在则创建路径
                if (!move_uploaded_file($file["tmp_name"][$i], $file_save_path . $file_save_name . $this->GetSuffix($file[''name''][$i])))
                {
                    
die($name . ''文件上传失败'');
                }
                
else 
                {
                    
$file_save_full_name[] = $file_save_name . $this->GetSuffix($file[''name''][$i]);
                }
            }
            
else 
            {
                
$file_save_full_name[] = null;
            }
        }
        
        
unlink($file);
        
        
/* 如果只有一个文件,则返回单个文件名 */
        
if (count($file_save_full_name== 1)
        {
            
$file_save_full_name = $file_save_full_name[0];
        }
        
        
return $file_save_full_name;
    }
    
    
/* 检验文件 */
    
private function CheckFile()
    {
        
$file = $_FILES[$this->InputName];
        
$file_number = count($file[''name'']); // 要上传的文件数
        
        
for ($i = 0$i < $file_number$i++)
        {
            
if (!empty($file[''name''][$i])) // 文件不为空
            {
                
$name  = $file[''name''][$i];
                
$type  = $file[''type''][$i];
                
$size  = $file[''size''][$i];
                
$error = $file[''error''][$i];
                
                
/* 确定允许上传文件类型列表 */
                
if (is_array($this->FileType[0]))
                {
                    
$file_type = $this->FileType[$i];
                }
                
else 
                {
                    
$file_type = $this->FileType;
                }
                
                
/* 确定最大上传文件大小 */
                
if (is_array($this->FileMaxSize))
                {
                    
$file_max_size_key = explode(''/'', $type);
                    
$file_max_size_key = $file_max_size_key[0];
                    
if (is_array($this->FileMaxSize[0]))
                    {
                        
$file_max_size = $this->FileMaxSize[$i][$file_max_size_key];
                    }
                    
else 
                    {
                        
$file_max_size = $this->FileMaxSize[$file_max_size_key];
                    }
                }
                
else 
                {
                    
$file_max_size = $this->FileMaxSize;
                }
                
                
/* 文件错误 */
                
if ($error > 0)
                {
                    
die($name . $this->NoteFileFalse);
                }
                
                
/* 文件类型不符 */
                
if (!in_array($type, $file_type))
                {
                    
die($name . $this->NoteFileType);
                }
                
                
/* 文件大小超过最大上传文件大小 */
                
if (!is_null($file_max_size&& $size > $file_max_size)
                {
                    
die($name . $this->NoteFileSize);
                }
            }
        }
    }
    
    
/* 获取文件后缀名 */
    
private function GetSuffix($fileName)
    {
        
return substr($fileName, strrpos($fileName, "."));
    }

    
/* 如果路径不存在则创建路径 */
    
private function CreatePath($filePath)
    {
        
if (!file_exists($filePath))
        {
            
mkdir($filePath);
        }
    }
}


使用方法:接着以本文开头所举例子来说明该类的调用方法(呵呵,调用是很方便的):
$upload_obj = new Upload(); // 文件上传对象
$upload_obj->InputName = ''upload_test''; // 文件上传域控件名
$upload_obj->FileType = array(array(''image/jpeg'', ''image/png''), array(''audio/mpeg'', ''video/x-msvideo'')); // 允许上传的文件类型
$upload_obj->FileMaxSize = array(''image'' => 100 * 1024, ''audio'' => 2 * 1024 * 1024, ''video'' => 2 * 1024 * 1024);
$upload_obj->FileSavePath = array(''upload/files/s/'', ''upload/files/z/'');
$upload_obj->FileSaveName = time();
$upload_obj->NoteFileFalse = ''文件错误'';
$upload_obj->NoteFileType  = ''文件类型不符'';
$upload_obj->NoteFileSize  = ''文件大小超出'';
$file_save_full_name = $upload_obj->UploadFile(); // 上传并获取文件全名(基本名加扩展名)(如果是多个文件则为数组形式)(全名用于在数据库中存储信息)

总结:就此可轻松实现若干文件上传,其实归根结底用到了PHP组文件上传,要注意的就是控件名的name后别忘了加上[],这样的好处就是遇到多个文件上传时就不用在调用层进行循环或一个一个处理上传了,我们的应用也因此而轻松。








<?php

D+t"g-V$iR;ujbj0 
]J%QQ:tc6W;pgf0
/******************************************************************************PHPChina 开源社区门户o"]+r"O?F?J
 PHPChina 开源社区门户*OFRT_*T,
参数说明:
Dj;xVDE9a8i?z w)d0$max_file_size  : 上传文件大小限制, 单位BYTE
/yt.S],K+b E0$destination_folder : 上传文件路径PHPChina 开源社区门户r x2dwx* j0y
$watermark   : 是否附加水印(1为加水印,其他为不加水印);
5cQ2mS;i''y(V0 
6m$j(L%je%vP L0******************************************************************************/
PHPChina 开源社区门户tXpR"]W3N e nm/t(?
 PHPChina 开源社区门户 b)q6|1rG*X*mo v
//上传文件类型列表PHPChina 开源社区门户#l@}A%[!b
 PHPChina 开源社区门户-r"]?lG8Gy5V
$uptypes=array(PHPChina 开源社区门户;?F}Z+@a
    
''image/jpg'', PHPChina 开源社区门户?^U3BRy
    
''image/jpeg'',PHPChina 开源社区门户pRv,gh^_
    
SyntaxHighlighter.highlight();
[!--infotagslink--]

相关文章

  • js实现上传图片及时预览

    这篇文章主要为大家详细介绍了js实现上传图片及时预览的相关资料,具有一定的参考价值,感兴趣的朋友可以参考一下...2016-05-09
  • Php文件上传类class.upload.php用法示例

    本文章来人大家介绍一个php文件上传类的使用方法,期望此实例对各位php入门者会有不小帮助哦。 简介 Class.upload.php是用于管理上传文件的php文件上传类, 它可以帮...2016-11-25
  • PHP传值到不同页面的三种常见方式及php和html之间传值问题

    在项目开发中经常见到不同页面之间传值在web工作中,本篇文章给大家列出了三种常见的方式。接触PHP也有几个月了,本文总结一下这段日子中,在编程过程里常用的3种不同页面传值方法,希望可以给大家参考。有什么意见也希望大...2015-11-24
  • js修改input的type属性问题探讨

    js修改input的type属性有些限制。当input元素还未插入文档流之前,是可以修改它的值的,在ie和ff下都没问题。但如果input已经存在于页面,其type属性在ie下就成了只读属性了,不可以修改。...2013-10-19
  • PHP文件上传一些小收获

    又码了一个周末的代码,这次在做一些关于文件上传的东西。(PHP UPLOAD)小有收获项目是一个BT种子列表,用户有权限上传自己的种子,然后配合BT TRACK服务器把种子的信息写出来...2016-11-25
  • Mysql常见问题集锦

    1,utf8_bin跟utf8_general_ci的区别 ci是 case insensitive, 即 "大小写不敏感", a 和 A 会在字符判断中会被当做一样的; bin 是二进制, a 和 A 会别区别对待. 例如你运行: SELECT * FROM table WHERE txt = 'a'...2013-10-04
  • jQuery实现简单的文件上传进度条效果

    本文实例讲述了jQuery实现文件上传进度条效果的代码。分享给大家供大家参考。具体如下: 运行效果截图如下:具体代码如下:<!DOCTYPE html><html><head><meta charset="utf-8"><title>upload</title><link rel="stylesheet...2015-11-24
  • php文件上传你必须知道的几点

    本篇文章主要说明的是与php文件上传的相关配置的知识点。PHP文件上传功能配置主要涉及php.ini配置文件中的upload_tmp_dir、upload_max_filesize、post_max_size等选项,下面一一说明。打开php.ini配置文件找到File Upl...2015-10-21
  • EXCEL数据上传到SQL SERVER中的简单实现方法

    EXCEL数据上传到SQL SERVER中的方法需要注意到三点!注意点一:要把EXCEL数据上传到SQL SERVER中必须提前把EXCEL传到服务器上.做法: 在ASP.NET环境中,添加一个FileUpload上传控件后台代码的E.X: 复制代码 代码如下: if...2013-09-23
  • Mysql大小写敏感的问题

    一、1 CREATE TABLE NAME(name VARCHAR(10)); 对这个表,缺省情况下,下面两个查询的结果是一样的:复制代码 代码如下: SELECT * FROM TABLE NAME WHERE name='clip'; SELECT * FROM TABLE NAME WH...2015-03-15
  • linux mint 下mysql中文支持问题

    一.mysql默认不支持中文,它的server和db默认是latin1编码.所以我们要将其改变为utf-8编码,因为utf-8包含了地球上大部分语言的二进制编码 1.关闭mysql服务 sudo /etc/init.d/mysql stop 2.修改mysql配置文件 mysql配...2015-10-21
  • DWVA上传漏洞挖掘的测试例子

    DVWA (Dam Vulnerable Web Application)DVWA是用PHP+Mysql编写的一套用于常规WEB漏洞教学和检测的WEB脆弱性测试程序。包含了SQL注入、XSS、盲注等常见的一些安全漏洞...2016-11-25
  • PHP swfupload图片上传的实例代码

    PHP代码如下:复制代码 代码如下:if (isset($_FILES["Filedata"]) || !is_uploaded_file($_FILES["Filedata"]["tmp_name"]) || $_FILES["Filedata"]["error"] != 0) { $upload_file = $_FILES['Filedata']; $fil...2013-10-04
  • 借助FileReader实现将文件编码为Base64后通过AJAX上传

    这篇文章主要介绍了借助FileReader实现将文件编码为Base64后通过AJAX上传的方法,包括后端对文件数据解码并保存的PHP代码,需要的朋友可以参考下...2015-12-25
  • 百度编辑器ueditor修改图片上传默认路径

    本案例非通用,仅作笔记以备用 修改后的结果是 百度编辑器里上传的图片路径为/d/file/upload1...2014-07-03
  • SpringMVC文件上传原理及实现过程解析

    这篇文章主要介绍了SpringMVC文件上传原理及实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-07-15
  • js实现上传文件添加和删除文件选择框

    这篇文章主要为大家详细介绍了js实现上传文件添加和删除文件选择框 ,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2016-10-25
  • jQuery+ajax简单实现文件上传的方法

    这篇文章主要介绍了jQuery+ajax简单实现文件上传的方法,结合实例形式简单分析了jQuery基于ajax的post方法进行文件传输及asp.net后台处理技巧,需要的朋友可以参考下...2016-06-12
  • PHP的APC模块实现上传进度条

    APC模块,它的全称是Alternative PHP Cache。APC可以将所有PHP代码会被缓存起来, 另外它可提供一定的内存缓存功能.但是这个功能并不是十分完美,有报告说如果频繁使用APC缓存的写入功能,会导致不可预料的错误.如果想使用...2015-10-30
  • smartupload实现文件上传时获取表单数据(推荐)

    这篇文章主要介绍了smartupload实现文件上传时获取表单数据的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下...2017-01-09