网学网为广大网友收集整理了,php中关于普通表单多文件上传的处理方法,希望对大家有所帮助!
然而有些情况只需要传递几个文件,而且文件体积并不太大,这种情况下使用组件则有点牛刀杀鸡的感觉,通过html自带的<input type="file">表单就可以实现需要的功能,关键在于后台接收
程序的处理。
php处理上传做的很方便,上传文件的信息通过服务器自动处理到
php中关于普通表单多文件上传的处理方法_网学
浏览:
FILES数组中,开发者只需要使用的内置处理函数简单操作就可以啦。
asp开发者则没有这么幸运,官方并没有提供直接的处理方法,需要开发者自己设计,这时就需要开发者了解IIS对enctype="multipart/form-data"表单的处理方式,IIS把enctype="multipart/form-data"表单提交的数据存储成二进制数据,以二进制格式返回给开发者,开发者则需要通过LenB、MidB的字节处理函数来分析获取的上传内容,客户端发送的具体表单数据格式,可以了解下HTTP RFC1867协议传输格式方面的知识。
下面是我处理多个文件上传的方法,包括php和asp两个版本。
php:WEBSITE_DIRROOT代表网站根目录:
复制代码 代码如下:
<?php
/*
* class: 文件上传类
* author: 51JS.COM-ZMM
* date: 2011.1.20
* email: 304924248@qq.com
* blog: http://www.cnblogs.com/cnzmm/
*/
class Upload {
public $up_ext=array(), $up_max=5210, $up_dir;
private $up_name, $up_rename=true, $up_num=0, $up_files=array(), $up_ret=array();
function __construct($name, $ext=array(), $rename=true) {
if (!empty($name)) {
$this->up_name = $name;
!empty($ext) && $this->up_ext = $ext;
$this->up_rename = $rename;
$this->up_dir = WEBSITE_DIRROOT.
$GLOBALS[''cfg_upload_path''];
$this->InitUpload();
} else {
exit(''upload文件域名称为空,初始化失败!'');
}
}
private function InitUpload() {
if (is_array(
php中关于普通表单多文件上传的处理方法_网学
浏览:
FILES[$this->up_name])) {
$up_arr = count(
php中关于普通表单多文件上传的处理方法_网学
浏览:
FILES[$this->up_name]);
$up_all = count(
php中关于普通表单多文件上传的处理方法_网学
浏览:
FILES[$this->up_name], 1);
$up_cnt = ($up_all - $up_arr) / $up_arr;
for ($i = 0; $i < $up_cnt; $i ++) {
if (
php中关于普通表单多文件上传的处理方法_网学
浏览:
FILES[$this->up_name][''error''][$i] != 4) {
$this->up_files[] = array(
''tmp_name'' =>
php中关于普通表单多文件上传的处理方法_网学
浏览:
FILES[$this->up_name][''tmp_name''][$i],
''name'' =>
php中关于普通表单多文件上传的处理方法_网学
浏览:
FILES[$this->up_name][''name''][$i],
''type'' =>
php中关于普通表单多文件上传的处理方法_网学
浏览:
FILES[$this->up_name][''type''][$i],
''size'' =>
php中关于普通表单多文件上传的处理方法_网学
浏览:
FILES[$this->up_name][''size''][$i],
''error'' =>
php中关于普通表单多文件上传的处理方法_网学
浏览:
FILES[$this->up_name][''error''][$i]
);
}
}
$this->up_num = count($this->up_files);
} else {
if (isset(
php中关于普通表单多文件上传的处理方法_网学
浏览:
FILES[$this->up_name])) {
$this->up_files = array(
''tmp_name'' =>
php中关于普通表单多文件上传的处理方法_网学
浏览:
FILES[$this->up_name][''tmp_name''],
''name'' =>
php中关于普通表单多文件上传的处理方法_网学
浏览:
FILES[$this->up_name][''name''],
''type'' =>
php中关于普通表单多文件上传的处理方法_网学
浏览:
FILES[$this->up_name][''type''],
''size'' =>
php中关于普通表单多文件上传的处理方法_网学
浏览:
FILES[$this->up_name][''size''],
''error'' =>
php中关于普通表单多文件上传的处理方法_网学
浏览:
FILES[$this->up_name][''error'']
);
$this->up_num = 1;
} else {
exit(''没找找到需要upload的文件!'');
}
}
$this->ChkUpload();
}
private function ChkUpload() {
if (empty($this->up_ext)) {
$up_mime = array(''image/wbmp'', ''image/bmp'', ''image/gif'', ''image/pjpeg'', ''image/x-png'');
foreach ($this->up_files as $up_file) {
$up_allw = false;
foreach ($up_mime as $mime) {
if ($up_file[''type''] == $mime) {
$up_allw = true; break;
}
}
!$up_allw && exit(''不允许上传''.$up_file[''type''].''格式的文件!'');
if ($up_file[''size''] / 1024 > $this->up_max) {
exit(''不允许上传大于