深圳全飞鸿
标题:
关于PHP的upload-file上传文件
[打印本页]
作者:
zhgc
时间:
2023-6-3 04:03
标题:
关于PHP的upload-file上传文件
再利用file-upload上
传图片的时候发现,报错在$_FILES["file"]["error"] 中,对应的解释:
$_FILES['file']['error']有以下几种类型:
UPLOAD_ERR_OK = 0
其值为 0,没有错误发生,文件上传成功。
UPLOAD_ERR_INI_SIZE =1
其值为 1,上传的文件超过了 php.ini 中 upload_max_filesize选项限制的值。
UPLOAD_ERR_FORM_SIZE = 2
其值为 2,上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。
UPLOAD_ERR_PARTIAL = 3
其值为 3,文件只有部分被上传。
UPLOAD_ERR_NO_FILE = 4
其值为 4,没有文件被上传。
UPLOAD_ERR_NO_TMP_DIR = 6
其值为 6,找不到临时文件夹。PHP 4.3.10 和 PHP 5.0.3 引进。
UPLOAD_ERR_CANT_WRITE = 7
其值为 7,文件写入失败。PHP 5.1.0 引进。
复制代码
作者:
zhgc
时间:
2023-6-3 04:05
因为看到错误提示是1:所以首先改了php.ini
; Maximum allowed size for uploaded files.
;
http://php.net/upload-max-filesize
upload_max_filesize = 20M
upload不报错,但上传任然没有文件
作者:
zhgc
时间:
2023-6-3 04:07
发现目标文件名为空,做了如下修改:
//fix by syant 20230601 upload_max_filesize = 20M
//$path=iconv('UTF-8', 'GBK', $path); //fix by syant
$encode = mb_detect_encoding($path, array("ASCII",'UTF-8',"GB2312","GBK",'BIG5'));
if($encode == 'GB2312'){
//
} else if($encode == 'GBK'){
//
} else{
$path= mb_convert_encoding($path, 'GBK', $encode);
}
复制代码
作者:
zhgc
时间:
2023-6-3 04:09
有目录文件名后, 还是不成功,发现文件名里有问号,
于是做了修改(注意放在最靠近文件复制函数的地方)
//fix by syant 20230601
for ($i = 0; $i <= 31; ++$i) {
$path = str_replace(chr($i), "", $path);
}
$path = str_replace(chr(63), " ", $path);
//
if(!move_uploaded_file($ex['tmp_name'],$path)){
file_put_contents("c:/fileuploaderror.txt",$ex['tmp_name']."\r\n".$path);
};
复制代码
欢迎光临 深圳全飞鸿 (http://www.nagomes.com/disc/)
Powered by Discuz! X3.2