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: