Error al cargar move_uploaded_file en php.
¿Es? Lenguaje de programación del lado del servidor (abreviatura de Preprocesador Profesional de Hipertexto)
/*
*Clase de carga de archivos
*/
Carga de cursos {
//Subir archivo
privado $ uploadFile
//Subir extensión de archivo
privado $ext = array('jpeg ' , ' jpg ', ' gif ', ' png ');
//Subir tamaño del archivo
private $ size = 5000000
//Subir directorio del archivo
privado $uploadDir = '. /uploads/';
//Ya sea para personalizar el nombre, el valor predeterminado es FALSO.
private $ newName = "";
// De forma predeterminada, si el archivo cargado es legible o no.
private $ isRead = TRUE
//Si se puede escribir en el archivo cargado, el valor predeterminado es verdadero.
privado $ isWrite = TRUE
//Subir información
Privado $ info
/*
* Inicialización de clase de carga de archivos
*/
función pública _ _ construct($ newName = ' ', $ext= ' ', $size= ' ', $dir= ' ', $isRead=TRUE, $isWrite=TRUE){
$ this->ext = vacío($ext)? $this-gt;ext: $ext;
$this-gt;tamaño = vacío($tamaño)? $this-gt;Tamaño: $size
$this-gt;dir = vacío($dir)? $this-gt;uploadDir:$dir;
$this-gt;newName = $newName
$this-gt;isRead = $isRead? verdadero: falso;
$ this- gt; isWrite = $isWrite? true: false;
}
/*
*Procesar archivos cargados
*/
Función pública doUpload(){
$this-gt;verificar datos();
$this-gt;checkFile() o $this-gt;error();
$this->checkExt() o $this->Error();
$this->checkSize() o $this->Error();
$ this->checkError() o $this->Error();
$this->checkDir() o $this->Error();
$this-gt; subir() o $this-gt;error();
return $this-gt;message['msg'];
}
/*
*Procesar datos del archivo subido
*/
Función pública checkData(){
$ num = 0;
$ new arr = array();
foreach($_FILES as $v){
if(is _ array( $ v[' nombre ']){
$ recuento = recuento($ v[' nombre ']);
for($ I = 0; $ i lt$ recuento$ i ){
foreach($ v as $ m = gt; $n){
$ nuevo arreglo[$ num][$ m]= $ n[$ I]
} p>
$ num ;
}
}else {
$ nuevo arreglo[$ num] = $ v;
$ num;
}
}
$ endArr = array();
foreach($newArr como $v){
si($v['n
ame']! = ''){
$ endArr[]= $ v
}
}
$ this- subirArchivo = $ endArr
}
/*
* Compruebe si el archivo subido existe.
*/
Función privada checkFile(){
if (null($ this- gt; subir archivo)){
$ this->Info['error'] = '¡El archivo subido no puede estar vacío! ! !';
Devuelve FALSO
}
Devuelve VERDADERO
}
/*
*Compruebe si el tipo de archivo cargado es legal.
*/
Función privada checkExt(){
if (!is_array($this- gt; text)){
$this-gt;ext = explotar(',',$this-gt;ext);
}
foreach($this-gt;subir archivo como $v ){
$ text = strtolower(substr(str rchr(basename($ v[' name ']),'.'),1));
if (! in_array ($ text, $this-gt;ext)){
$this-gt;Info['error'] = 'El tipo de archivo cargado es ilegal, ¡la carga está prohibida! ! !';
Devuelve FALSO
}
}
Devuelve VERDADERO
}
/*
* Comprueba el tamaño del archivo subido.
*/
Función privada checkSize(){
foreach($ this- gt; el archivo cargado es $v){
if($ v[' size '] gt; $ this- gt; size){
$ this- gt; Info['error'] = 'El archivo cargado es demasiado grande, ¡la carga falló! ! !';
Devuelve FALSO
}
}
Devuelve VERDADERO
}
/*
*Detectar código de error de carga de archivos
*/
Función privada checkError(){
foreach($ this - gt; el archivo cargado es $v){
Cambiar ($v['error']){
Caso 0:
Devuelve VERDADERO
Roto;
Caso 1:
$ this->Info['error'] = 'El archivo cargado excede el límite de la opción upload_max_filesize en php.ini, ¡La carga falló! ! !';
Devuelve FALSO
Break;
Caso 2:
$ this- gt; 'El tamaño del archivo cargado excede el valor especificado por la opción MAX_FILE_SIZE en el formulario HTML.
¡La carga falló! ! !';
Devuelve FALSO
Break;
Caso 3:
$ this- gt; '¡Solo se cargó una parte del archivo! ! !';
Devuelve FALSO
Break;
Caso 4:
$ this->Info['error'] = ' ¡No se ha subido ningún archivo! ! !';
Devuelve FALSO
Rotura;
}
}
Devuelve VERDADERO
}
/*
*Compruebe si la carpeta de carga existe.
*/
Función privada checkDir(){
If (!file_exists($this- gt;uploadDir)){
mkdir($this-gt;uploadDir,0777,true);
}
if (! is_writeable($this-gt;uploadDir)){
$ this- gt; Info['error'] = 'El directorio de carga no tiene permiso de escritura, ¡la carga falló! ! !';
Devuelve FALSO
}
Devuelve VERDADERO
}
/*
*Subir archivos
*/
Función privada upload(){
date_default_timezone_set('PRC ').
//Detecta si el archivo tiene un nombre personalizado.
$ nombre = vacío($ this->nuevoNombre)? fecha('Ymd_His'): $this-gt; nuevoNombre
foreach($this-gt;el archivo cargado es $k = gt$v){
$upload_path = $ este->directorio de carga. $nombre. '_'.($k 1).
strrchr(basename($v['nombre']), '.');
$upload_path = iconv('UTF-8', 'gbk', $upload_path);
if(is_uploaded_file($v['tmp_name']){
if(move_uploaded_file($v['tmp_name'],$upload_path) ){
if ($ esto- gt; isRead amp amp$ this- gt; isWrite){
chmod($upload_path, 0777);
} else if($this- gt;isRead amp!$this- gt;isWrite){
chmod($upload_path, 0444);
}else if(!$this- gt;isRead amp amp$ this- gt;isWrite){ p>
chmod($upload_path, 0222);
}else {
chmod($upload_path, 0000);
}
$ this- gt; info[' msg '] = array (' tipo ' = gt; 1, 'éxito' = archivo gt cargado correctamente', 'ruta' = gticonv('gbk', 'UTF-8' , $upload_path));
} else {
$this-gt; info['error' ] = '¡Error en la carga del archivo!';
Regresar FALSO
}
}
Devuelve VERDADERO
}
/*
*Método para una carga exitosa
*/
Función pública Success(){
echo $this- gt;'message']['success' ];
}
/*
*Error en el método de carga de archivos
*/
Error de función pública(){
echo $this-gt; mensaje['error'] ;
Muerto;
}
Esta es mi clase de PHP, puedes consultarla. Si tiene alguna necesidad especial, dígame y mejore la clase de carga.