Función para subir archivos facilmente. (INCOMPLETO)
<?php
/**
* Funcion para subir archivos.
*
* @author JoseRobinson.com
* @param string $input_name
* @param string $dir
* @param bool $replace
* @return mixed Un array si todo bien o FALSE si algo fallo.
*/
function upload_file($input_name, $dir, $replace = FALSE) {
if (FALSE === is_uploaded_file($_FILES[$input_name]['tmp_name'])) {
return FALSE;
}
$r = array();
$r['file_type'] = $_FILES[$input_name]['type'];
$r['orig_name'] = $_FILES[$input_name]['name'];
$r['file_size'] = $_FILES[$input_name]['size'];
$r['file_name'] = preg_replace('#\s+#', '-', trim($_FILES[$input_name]['name']));
$r['file_name'] = preg_replace('#[^a-zA-Z0-9-_\.]#', '', $r['file_name']);
$r['file_ext'] = end(explode('.', $r['file_name']));
$r['raw_name'] = $r['raw_name2'] = substr($r['file_name'], 0, strlen($r['file_name'])-(strlen($r['file_ext'])+1));
$r['file_path'] = realpath($dir) . DIRECTORY_SEPARATOR;
$r['full_path'] = "{$r['file_path']}{$r['raw_name']}.{$r['file_ext']}";
if ($replace === TRUE && file_exists($r['full_path'])) {
unlink($r['full_path']);
} else {
$num = 1;
while (file_exists($r['full_path'])){
$num++;
$r['raw_name'] = "{$r['raw_name2']}{$num}";
$r['full_path'] = "{$r['file_path']}{$r['raw_name']}.{$r['file_ext']}";
}
}
if (FALSE === move_uploaded_file($_FILES[$input_name]['tmp_name'], $r['full_path'])) {
return FALSE;
}
return $r;
}
<?php
require 'upload_file.php';
if ($_POST) {
exit(var_export(upload_file('file', './files/', TRUE), TRUE));
}
?>
<form action="index.php" method="POST" enctype="multipart/form-data">
<input type="file" name="file" value="" />
<input type="submit" value="Subir" />
</form>