Para fazer upload de arquivos, precisamos usar o tipo type=file do formulário em HTML e seu atributo enctype. Isto é o que todos nós temos que usar. Claro, devemos usar a biblioteca de funções FILE, a biblioteca de funções do tipo string, a biblioteca de funções de diretório e $_FILES[] entre as bibliotecas de funções PHP.
Talvez todo site possa ter muitas restrições ao upload de arquivos. Essas restrições podem incluir tipo de arquivo, tamanho do arquivo, extensão e a existência do diretório de upload, a existência do arquivo de upload, a capacidade de escrita do diretório e a legibilidade, renomeação de. arquivos carregados e como copiar arquivos do cache para o diretório que você precisa.
É claro que o pré-processamento de erros não pode ser ignorado. Se discutirmos isso mais detalhadamente, também podemos ativar a gravação do log de eventos para operações de arquivo.
Abaixo implementamos essas funções através de um programa:
O primeiro é o valor da nossa variável predefinida, que inclui tamanho do arquivo, tipo de extensão de arquivo, tipo MIMI e se a variável switch deve ser excluída
$MAX_SIZE = 2000000;
$FILE_MIMES = array('imagem/jpeg','imagem/jpg','imagem/gif'
,'image/png','application/msword');
$
FILE_EXTS = array('.zip','.jpg','.png',
'.gif');
definir variáveis de acesso ao navegador e variáveis de acesso ao diretório:
$site_name = $_SERVER['HTTP_HOST'];
$url_dir = http://.$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF' ]);
$
$upload_url = $url_dir./arquivos/;
$message =;
Crie o diretório de upload e altere as permissões de acordo:
if (!is_dir(files)) {
if (!mkdir($upload_dir))
die (o diretório upload_files não existe e a criação falhou);
if (!chmod($upload_dir,0755))
morrer (falha na alteração da permissão para 755.);
}
Tratamento de solicitações de usuários:
if ($_REQUEST[del] && $DELETABLE) {
$recurso = fopen(log.txt,a);
fwrite($recurso,data(Ymd h:i:s).DELETE - $_SERVER[REMOTE_ADDR].$_REQUEST[del]\n);
fclose($resource);
if (strpos($_REQUEST[del],/.)>0);
else if (strpos($_REQUEST[del],files/) === false); //possível hacking
senão if (substr($_REQUEST[del],0,6)==arquivos/) {
desvincular($_REQUEST[del]);
print<script>window.location.href='$url_this?message=deletado com sucesso'</script>;
}
}
senão if ($_FILES['userfile']) {
$recurso = fopen(log.txt,a);
fwrite($recurso,data(Ymd h:i:s).UPLOAD - $_SERVER[REMOTE_ADDR]
.$_FILES['userfile']['nome'].
.$_FILES['userfile']['tipo'].\n);
fclose($resource);
$file_type = $_FILES['userfile']['type'];
$file_name = $_FILES['userfile']['nome'];
$file_ext = strtolower(substr($file_name,strrpos($file_name,.)));
//Verificação do tamanho do arquivo:
if ( $_FILES['userfile']['size'] > $MAX_SIZE)
$message = O tamanho do arquivo é superior a 2MB.;
//Verificação de tipo de arquivo/extensão
senão if (!in_array($file_type, $FILE_MIMES)
&& !in_array($arquivo_ext, $FILE_EXTS) )
$message = Desculpe, $file_name($file_type) não pode ser carregado.;
outro
$mensagem = do_upload($upload_dir, $upload_url);
imprimir <script>window.location.href='$url_this?message=$message'</script>;
}
senão if (!$_FILES['userfile']);
outro
$message = Arquivo Inválido Especificado.;
Liste os arquivos que enviamos:
$handle=opendir($upload_dir);
$lista de arquivos = ;
while ($arquivo = readdir($handle)) {
if(!is_dir($arquivo) && !is_link($arquivo)) {
$filelist .= <a href='$upload_dir$arquivo'>.$arquivo.</a>;
se ($DELETABLE)
$filelist .= <a href='?del=$upload_dir$file' title='delete'>x</a>;
$filelist .= <sub><small><small><font color=grey> .date(dm H:i, filemtime($upload_dir.$file))
.</fonte></pequeno></pequeno></sub>;
$lista de arquivos .=<br>;
}
}
função do_upload($upload_dir, $upload_url) {
$temp_name = $_FILES['userfile']['tmp_name'];
$file_name = $_FILES['userfile']['nome'];
$nome_arquivo = str_replace( \\,,$nome_arquivo );
$nome_arquivo = str_replace(',,$nome_arquivo);
$file_path = $upload_dir.$file_name;
//Verificação do nome do arquivo
if ($nome_arquivo ==) {
$message = Nome de arquivo inválido especificado;
retornar $mensagem;
}
$resultado = move_uploaded_file($temp_name, $file_path);
if (!chmod($caminho_do_arquivo,0777))
$message = falha na alteração da permissão para 777.;
outro
$mensagem = ($resultado)?$file_name carregado com sucesso:
Algo está errado com o upload de um arquivo.;
retornar $mensagem;
}
?>
<centro>
<cor da fonte=vermelho><?=$_REQUEST[mensagem]?></fonte>
<br>
<nome do formulário=upload id=upload ENCTYPE=multipart/form-data method=post>
Carregar arquivo <tipo de entrada = id do arquivo = nome do arquivo de usuário = arquivo de usuário>
<tipo de entrada=nome de envio=valor de upload=Upload>
</form>
<br><b>Meus arquivos</b>
<hr largura=70%>
<?=$lista de arquivos?>
<hr largura=70%>
<pequeno><sup>Desenvolvido por
<a style=text-decoration:none href=http://tech.citypost.ca>CityPost.ca</a>
</sup></pequeno>
</centro>