Algunas cosas a tener en cuenta:
1) En fase de desarrollo y más con problemas .. QUITA toda @ delante de funciones .. eso deshabilita los probables mensajes de error .. así que te puedes volver loco buscando un error del cual no obtienes ningún mensaje .. Cuando te funcione todo OK ahí si quieres le pones @ a toda función que estimes oportuno.
2) .. si Usas un "if .." es para hacer algún tipo de condicional .. ya que copy() devuelve "true" si se ejecutó y false sino, y todo esto para que puedas controlar el error, por ejemplo mostrando un mensajito acorde al error. Si no quiers .. no uses el "if" y pon el copy() a secas ..
3) Te recomiendo que uses en lugar de copy() -> move_uploaded_file()
Código PHP:
if (copy($archivo, "/descargas/"$archivo_name)){
echo "se copió";
} else {
echo "pues no se copió :((( ";
}
(cambié la negación ! del copy pero es lo mismooo);
Un saludo,