Latest web development tutorials
×

PHP curso

PHP curso PHP breve introdução PHP instalar PHP gramática PHP variável PHP echo/print PHP Tipos de dados PHP constante PHP corda PHP operadores PHP If...Else PHP Switch PHP ordem PHP Classificação de uma matriz PHP superglobais PHP While circulação PHP For circulação PHP função PHP Variáveis ​​mágicas PHP namespaces PHP Object-Oriented

PHP formulário

PHP formulário PHP Autenticação de formulários PHP formulário - campos obrigatórios PHP formulário - -mail de verificação e URL PHP instância de formulário completo PHP $_GET variável PHP $_POST variável

PHP Tutorial avançado

PHP arrays multidimensionais PHP data PHP conter PHP arquivo PHP Carregar arquivo PHP Cookie PHP Session PHP E-mail PHP segurança E-mail PHP Error PHP Exception PHP filtro PHP Filtro avançado PHP JSON

PHP 7 novos Recursos

PHP 7 novos Recursos

PHP banco de dados

PHP MySQL breve introdução PHP MySQL conexão PHP MySQL Criação de um banco de dados PHP MySQL Criar uma tabela de dados PHP MySQL inserir dados PHP MySQL Inserir dados múltiplos PHP MySQL instruções preparadas PHP MySQL ler dados 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 introdução AJAX PHP AJAX banco de dados AJAX XML AJAX busca em tempo real AJAX RSS Reader AJAX voto

PHP manual de referência

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 Processamento de imagem PHP RESTful

Carregar arquivo PHP

Por PHP, você pode fazer upload de arquivos para o servidor.

Exemplos desta seção sob o projeto de teste for concluída, a estrutura de diretórios:

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

Criar um formulário de upload de arquivo

Permite aos usuários fazer upload de arquivos de uma forma é útil.

Considere o seguinte formulário HTML para upload de arquivos:

<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>

Salve o código acima para form.html arquivo.

Alguns itens relacionados ao formulário HTML acima estão listados abaixo:

  • <Form> tag atributo enctypeespecifica o conteúdo quando submeter um formulário que tipo a ser usado. Quando formulário requer dados binários, tais como o conteúdo do arquivo, use o"/ form-data com várias partes".
  • <Input> tipo detag=atributo"file"especifica a entrada devem ser tratados como arquivos. Por exemplo, quando você visualiza em um navegador, você verá ao lado da caixa de entrada tem um botão Browse.

Nota: Permitir aos usuários fazer upload de arquivos é um enorme risco de segurança.Por favor, só permite que os usuários confiáveis ​​para realizar o upload de arquivos.


Criar script de upload

"Upload_file.php" arquivo contém o código para upload de arquivos:

<?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"];
}
?>

Usando PHP matrizes globais $ _FILES, você pode fazer upload de arquivos para um servidor remoto a partir do computador cliente.

O primeiro parâmetro é o nome do formulário de entrada, o segundo subscrito pode ser um "nome", "tipo", "size", "tmp_name" ou "erro". Como se segue:

  • $ _FILES [ "Arquivo"] [ "nome"] - o nome do arquivo enviado
  • $ _FILES [ "Arquivo"] [ "tipo"] - tipos de upload de arquivos
  • $ _FILES [ "Arquivo"] [ "tamanho"] - o tamanho de upload de arquivo em bytes
  • $ _FILES [ "Arquivo"] [ "tmp_name"] - uma cópia temporária é armazenada no nome do servidor de arquivos
  • $ _FILES [ "Arquivo"] [ "erro"] - o código de erro resultante da carga de arquivo

Esta é uma forma muito simples o upload de arquivos. Com base em considerações de segurança, você deve aumentar as restrições sobre quais usuários têm permissão para fazer upload de arquivos.


limite de upload

Neste roteiro, nós adicionamos ao limite de upload de arquivos. Os usuários só podem fazer upload de .gif, .jpeg, .jpg, .png arquivo, o tamanho do arquivo deve 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 "非法的文件格式";
}
?>


Salve o arquivo a ser carregado

O exemplo acima é para criar uma cópia temporária do arquivo enviado em uma pasta PHP servidor de arquivos temporários.

A cópia temporária do arquivo vai desaparecer no final do script. Para salvar um arquivo é carregado, é preciso copiá-lo para outro local:

<?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 "非法的文件格式";
}
?>

O script acima detecta se o arquivo já existe, se não, coloque os arquivos são copiados para um diretório chamado "carregamento" de.

operação de upload de arquivos de demonstração é a seguinte: