实例:
1、创建文件upfile.php,代码如下
//如果收到表单传来的参数,则进行上传处理,否则显示表单
if(isset($_files[uploadinput])){
//建目录函数,其中参数$directoryname最后没有/,
//要是有的话,以/打散为数组的时候,最后将会出现一个空值
function makedirectory($directoryname) {
$directoryname = str_replace(\,/,$directoryname);
$dirnames = explode(/, $directoryname);
$total = count($dirnames) ;
$temp = ;
for($i=0; $i
$temp .= $dirnames[$i]./;
if (!is_dir($temp)) {
$oldmask = umask(0);
if (!mkdir($temp, 0777)) exit(不能建立目录 $temp);
umask($oldmask);
}
}
return true;
}
if($_files[uploadinput][name] ){
//包含上传文件类
require_once (class_upload.php);
//设置文件上传目录
$savepath = upload;
//创建目录
makedirectory($savepath);
//允许的文件类型
$fileformat = array(gif,jpg,jpge,png);
//文件大小限制,单位: byte,1kb = 1000 byte //2cto.com
//0 表示无限制,但受php.ini中upload_max_filesize设置影响
$maxsize = 0;
//覆盖原有文件吗? 0 不允许 1 允许
$overwrite = 0;
//初始化上传类
$f = new clsupload( $savepath, $fileformat, $maxsize, $overwrite);
//如果想生成缩略图,则调用成员函数 $f->setthumb();
//参数列表: setthumb($thumb, $thumbwidth = 0,$thumbheight = 0)
//$thumb=1 表示要生成缩略图,不调用时,其值为 0
//$thumbwidth 缩略图宽,单位是像素(px),留空则使用默认值 130
//$thumbheight 缩略图高,单位是像素(px),留空则使用默认值 130
$f->setthumb(1);
//参数中的uploadinput是表单中上传文件输入框input的名字
//后面的0表示不更改文件名,若为1,则由系统生成随机文件名
if (!$f->run(uploadinput,0)){
//通过$f->errmsg()只能得到最后一个出错的信息,
//详细的信息在$f->getinfo()中可以得到。
echo $f->errmsg().
;
}
//上传结果保存在数组returnarray中。//2cto.com
echo
;
print_r($f->getinfo());
echo
;
}
}else{
?>
send this file:
2、创建文件class_upload.php,代码如下
class clsupload{
var $savename;// 保存名
var $savepath;// 保存路径
var $fileformat = array(gif,jpg,doc,application/octet-stream);// 文件格式&mime限定
var $overwrite = 0;// 覆盖模式
var $maxsize = 0;// 文件最大字节
var $ext;// 文件扩展名
var $thumb = 0;// 是否生成缩略图
var $thumbwidth = 130;// 缩略图宽
var $thumbheight = 130;// 缩略图高
var $thumbprefix = _;// 缩略图前缀
var $errno;// 错误代号
var $returnarray= array();// 所有文件的返回信息
var $returninfo= array();// 每个文件返回信息
// 构造函数
// @param $savepath 文件保存路径
// @param $fileformat 文件格式限制数组
// @param $maxsize 文件最大尺寸
// @param $overwriet 是否覆盖 1 允许覆盖 0 禁止覆盖
function clsupload($savepath, $fileformat=,$maxsize = 0, $overwrite = 0) {
$this->setsavepath($savepath);
$this->setfileformat($fileformat);
$this->setmaxsize($maxsize);
$this->setoverwrite($overwrite);
$this->setthumb($this->thumb, $this->thumbwidth,$this->thumbheight);
$this->errno = 0;
}
// 上传
// @param $fileinput 网页form(表单)中input的名称
// @param $changename 是否更改文件名
function run($fileinput,$changename = 1){
if(isset($_files[$fileinput])){
$filearr = $_files[$fileinput];
if(is_array($filearr[name])){//上传同文件域名称多个文件
for($i = 0; $i
$ar[tmp_name] = $filearr[tmp_name][$i];
$ar[name] = $filearr[name][$i];
$ar[type] = $filearr[type][$i];
$ar[size] = $filearr[size][$i];
$ar[error] = $filearr[error][$i];
$this->getext($ar[name]);//取得扩展名,赋给$this->ext,下次循环会更新
$this->setsavename($changename == 1 ? : $ar[name]);//设置保存文件名
if($this->copyfile($ar)){
$this->returnarray[] = $this->returninfo;
}else{
$this->returninfo[error] = $this->errmsg();
$this->returnarray[] = $this->returninfo;
}
}
return $this->errno ? false : true;
http://www.bkjia.com/phpjc/486458.htmlwww.bkjia.comtruehttp://www.bkjia.com/phpjc/486458.htmltecharticle实例: 1、创建文件upfile.php,代码如下 //如果收到表单传来的参数,则进行上传处理,否则显示表单 if(isset($_files[uploadinput])){ //建目录函数...