php多图片上传加数据 php怎么上传多个图片( 二 )


*/
function UploadFile($file, $uname, $path, $size = 2097152, $type = '') {
$this-user_name_u = $uname;
//$this-user_name_y = $utype;
$this-user_post_file = $file;
$this-save_file_path = $path;
$this-max_file_size = $size; //如果用户不填写文件大?。?则默认为2M.
if ($type != '')
$this-allow_type = $type;
}
/**
* 存储用户上传文件,检验合法性通过后,存储至指定位置 。
* @access public
* @return int值为0时上传失败 , 非0表示上传成功的个数 。
*/
function upload() {
for ($i = 0; $icount($this-user_post_file['name']); $i++) {
//如果当前文件上传功能,则执行下一步 。
if ($this-user_post_file['error'][$i] == 0) {
//取当前文件名、临时文件名、大小、扩展名,后面将用到 。
$userty = $this-user_name_y[$i];
$uuname = $this-user_name_u[$i];
$name = $this-user_post_file['name'][$i];
$tmpname = $this-user_post_file['tmp_name'][$i];
$size = $this-user_post_file['size'][$i];
$mime_type = $this-user_post_file['type'][$i];
$type = $this-getFileExt($this-user_post_file['name'][$i]);
//检测当前上传文件大小是否合法 。
if (!$this-checkSize($size)) {
$this-last_error = "这个文件的大小太大了. 您上传的文件名: ".$name;
$this-halt($this-last_error);
continue;
}
//检测当前上传文件扩展名是否合法 。
if (!$this-checkuplod($type)) {
$this-last_error = "允许上传文件类型: .".$type." 您上传的文件名: ".$name;
$this-halt($this-last_error);
continue;
}
//检测当前上传文件是否非法提交 。
if(!is_uploaded_file($tmpname)) {
$this-last_error = "文件非法提交. 您上传的文件名: ".$name;
$this-halt($this-last_error);
continue;
}
//移动文件后,重命名文件用 。
$basename = $this-getBaseName($name, ".".$type);
//移动后的文件名
$saveas = $basename."-".time().".".$type;
//$saveas = $basename.".".$type;
//组合新文件名再存到指定目录下 , 格式:存储路径 + 文件名 + 时间 + 扩展名
$this-final_file_path = $this-save_file_path."/".$saveas;
if(!move_uploaded_file($tmpname, $this-final_file_path)) {
$this-last_error = $this-user_post_file['error'][$i];
$this-halt($this-last_error);
continue;
}
//存储当前文件的有关信息,以便其它程序调用 。
$this-save_info[] = array("uname" = $uuname,"name" = $name, "type" = $type,
"mime_type" = $mime_type,
"size" = $size, "saveas" = $saveas,
"path" = $this-final_file_path);
}
}
return count($this-save_info); //返回上传成功的文件数目
}
/**
* 返回一些有用的信息 , 以便用于其它地方 。
* @access public
* @return Array 返回最终保存的路径
*/
function getSaveInfo() {
return $this-save_info;
}
/**
* 检测用户提交文件大小是否合法
* @param Integer $size 用户上传文件的大小
* @access private
* @return boolean 如果为true说明大小合法 , 反之不合法
*/
function checkSize($size) {
if ($size$this-max_file_size) {
return false;
}
else {
return true;
}
}
/**
* 检测用户提交文件类型是否合法
* @access private
* @return boolean 如果为true说明类型合法,反之不合法
*/
function checkType($extension) {
foreach ($this-allow_type as $type) {
//echo "pre";
//print_r($type);
//print_r($extension);
$str=substr($extension['name'][0],strrpos($extension['name'][0],'.')+1);
//echo $str;
//exit();

推荐阅读