o.O sin ofender,pero me eh quedado sorprendido, si hay algo "diferente" es que debe a ver algo igual (seria mas correcto decir que "comparten" algo ambos códigos)en ambos códigos, vamos, ya para acabar (¬¬ >.<) el error es en el nombre del campo file...
Código PHP:
Ver original//mal...
$_FILES['archivo']['type']
$_FILES['archivo']['tmp_name']
//bien...
$_FILES['upfile']['tmp_name']
solo cambia el nombre de los campos.... y ya debería funcionar...
Nota: solo para aclarar el punto...
Cita: ... Yo encuentro error es que en $mimetype,6 indica que deben ser 6 tipos ...
Cuando no sepas que hace una función (en este caso substr) buscala en el manual de PHP, substr extrae (o corta según como se vea) un "pedazo" de texto de un string en el sitio indicado, en este caso le estamos diciendo a substr que "corte" el string de mime-type que nos retorne el texto a partir del 6 caracter, los anteriores serán desechados, ejemplo...
el mime-type en una imagen normalmente es image/jpeg en un archivo jpg, image/png en un png y así sucesivamente, en nuestro caso no necesitamos el image/, así que lo desechamos con substr...