Latest web development tutorials
×

PHP curso

PHP curso PHP breve introducción PHP instalar PHP gramática PHP variable PHP echo/print PHP Tipos de datos PHP constante PHP cadena PHP operadores PHP If...Else PHP Switch PHP formación PHP Ordenación de un conjunto PHP superglobals PHP While circulación PHP For circulación PHP función PHP Las variables mágicas PHP Los espacios de nombres PHP Orientado a Objetos

PHP formulario

PHP formulario PHP autenticación de formularios PHP formulario - Los campos necesarios PHP formulario - correo electrónico de verificación y la URL PHP instancia completa formulario PHP $_GET variable PHP $_POST variable

PHP Tutorial avanzado

PHP Las matrices multidimensionales PHP fecha PHP contener PHP expediente PHP Cargar archivo PHP Cookie PHP Session PHP E-mail PHP seguridad E-mail PHP Error PHP Exception PHP filtro PHP filtro avanzado PHP JSON

PHP 7 nuevas características

PHP 7 nuevas características

PHP base de datos

PHP MySQL breve introducción PHP MySQL conexión PHP MySQL La creación de una base de datos PHP MySQL Crear una tabla de datos PHP MySQL insertar datos PHP MySQL Insertar datos múltiples PHP MySQL Sentencias preparadas PHP MySQL leer datos PHP MySQL WHERE PHP MySQL ORDER BY PHP MySQL UPDATE PHP MySQL DELETE PHP ODBC

PHP XML

XML Expat Parser XML DOM XML SimpleXML

PHP & AJAX

AJAX breve introducción AJAX PHP AJAX base de datos AJAX XML AJAX búsqueda en tiempo real AJAX RSS Reader AJAX voto

PHP Manual de referencia

PHP Array PHP Calendar PHP cURL PHP Date PHP Directory PHP Error PHP Filesystem PHP Filter PHP FTP PHP HTTP PHP Libxml PHP Mail PHP Math PHP Misc PHP MySQLi PHP PDO PHP SimpleXML PHP String PHP XML PHP Zip PHP Timezones PHP Procesamiento de imágenes PHP RESTful

Subir archivos PHP

Por PHP, puede cargar archivos en el servidor.

Los ejemplos en esta sección bajo el proyecto de prueba se ha completado, la estructura de directorios:

test
|-----upload             # 文件上传的目录
|-----form.html          # 表单文件
|-----upload_file.php    # php 上传代码

Crear un formulario de carga de archivos

Permite a los usuarios subir archivos de una forma útil.

Considere el siguiente formulario HTML para subir archivos:

<html>
<head>
<meta charset="utf-8">
<title>本教程(w3big.com)</title>
</head>
<body>

<form action="upload_file.php" method="post" enctype="multipart/form-data">
	<label for="file">文件名:</label>
	<input type="file" name="file" id="file"><br>
	<input type="submit" name="submit" value="提交">
</form>

</body>
</html>

Guarde el código anterior para form.html archivo.

Algunos artículos relacionados con el formulario HTML anterior se enumeran a continuación:

  • <Form> El atributo de etiqueta enctypeespecifica el contenido al enviar un formulario qué tipo de uso. Cuando formulario requiere datos binarios, tales como el contenido del archivo, utilice el"multipart / form-data".
  • <Input> tipo deetiqueta=atributo"archivo"especifica la entrada debe ser tratado como archivos. Por ejemplo, en la vista previa en un navegador, verá al lado de la caja de entrada tiene un botón Examinar.

Nota: Permitir a los usuarios subir archivos es un gran riesgo para la seguridad.Por favor, sólo se permite a los usuarios de confianza para llevar a cabo la carga de archivos.


Crear script de carga

"Upload_file.php" archivo contiene el código para subir archivos:

<?php
if ($_FILES["file"]["error"] > 0)
{
	echo "错误:" . $_FILES["file"]["error"] . "<br>";
}
else
{
	echo "上传文件名: " . $_FILES["file"]["name"] . "<br>";
	echo "文件类型: " . $_FILES["file"]["type"] . "<br>";
	echo "文件大小: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
	echo "文件临时存储的位置: " . $_FILES["file"]["tmp_name"];
}
?>

Mediante el uso de matrices de PHP globales $ _FILES, puede cargar archivos en un servidor remoto desde el equipo cliente.

El primer parámetro es el nombre de entrada de un formulario, el segundo subíndice puede ser un "nombre", "tipo", "tamaño", "tmp_name" o "error". En la siguiente manera:

  • $ _FILES [ "Archivo"] [ "nombre"] - el nombre del archivo subido
  • $ _FILES [ "Archivo"] [ "tipo"] - Subir los tipos de archivos
  • $ _FILES [ "Archivo"] [ "tamaño"] - tamaño de archivo de carga en bytes
  • $ _FILES [ "Archivo"] [ "tmp_name"] - una copia temporal se almacena en el nombre del servidor de archivos
  • $ _FILES [ "Archivo"] [ "error"] - el código de error resultante de la carga de archivos

Esta es una manera muy sencilla la carga de archivos. En base a las consideraciones de seguridad, se debe aumentar las restricciones en los cuales se permite a los usuarios subir archivos.


límite de subida

En este script, hemos añadido al límite de carga de archivos. Los usuarios sólo pueden subir .gif, .jpeg, .jpg, .png, el tamaño del archivo debe ser inferior a 200 kB:

<?php
// 允许上传的图片后缀
$allowedExts = array("gif", "jpeg", "jpg", "png");
$temp = explode(".", $_FILES["file"]["name"]);
$extension = end($temp);        // 获取文件后缀名
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/jpg")
|| ($_FILES["file"]["type"] == "image/pjpeg")
|| ($_FILES["file"]["type"] == "image/x-png")
|| ($_FILES["file"]["type"] == "image/png"))
&& ($_FILES["file"]["size"] < 204800)    // 小于 200 kb
&& in_array($extension, $allowedExts))
{
	if ($_FILES["file"]["error"] > 0)
	{
		echo "错误:: " . $_FILES["file"]["error"] . "<br>";
	}
	else
	{
		echo "上传文件名: " . $_FILES["file"]["name"] . "<br>";
		echo "文件类型: " . $_FILES["file"]["type"] . "<br>";
		echo "文件大小: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
		echo "文件临时存储的位置: " . $_FILES["file"]["tmp_name"];
	}
}
else
{
	echo "非法的文件格式";
}
?>


Guarde el archivo sea cargado

El ejemplo anterior es crear una copia temporal del archivo cargado en una carpeta temporal del servidor de archivos PHP.

La copia temporal del archivo desaparecerá al final de la secuencia de comandos. Para guardar un archivo subido, tenemos que copiarlo en otra ubicación:

<?php
// 允许上传的图片后缀
$allowedExts = array("gif", "jpeg", "jpg", "png");
$temp = explode(".", $_FILES["file"]["name"]);
echo $_FILES["file"]["size"];
$extension = end($temp);     // 获取文件后缀名
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/jpg")
|| ($_FILES["file"]["type"] == "image/pjpeg")
|| ($_FILES["file"]["type"] == "image/x-png")
|| ($_FILES["file"]["type"] == "image/png"))
&& ($_FILES["file"]["size"] < 204800)   // 小于 200 kb
&& in_array($extension, $allowedExts))
{
	if ($_FILES["file"]["error"] > 0)
	{
		echo "错误:: " . $_FILES["file"]["error"] . "<br>";
	}
	else
	{
		echo "上传文件名: " . $_FILES["file"]["name"] . "<br>";
		echo "文件类型: " . $_FILES["file"]["type"] . "<br>";
		echo "文件大小: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
		echo "文件临时存储的位置: " . $_FILES["file"]["tmp_name"] . "<br>";
		
		// 判断当期目录下的 upload 目录是否存在该文件
		// 如果没有 upload 目录,你需要创建它,upload 目录权限为 777
		if (file_exists("upload/" . $_FILES["file"]["name"]))
		{
			echo $_FILES["file"]["name"] . " 文件已经存在。 ";
		}
		else
		{
			// 如果 upload 目录不存在该文件则将文件上传到 upload 目录下
			move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_FILES["file"]["name"]);
			echo "文件存储在: " . "upload/" . $_FILES["file"]["name"];
		}
	}
}
else
{
	echo "非法的文件格式";
}
?>

El script anterior detecta si el archivo ya existe, si no, poner los archivos se copian en un directorio llamado "carga" de.

la operación de carga de archivos de demostración es la siguiente: