¡Por fin! ¡Funciona perfctamente tanto en local como online!
¡Gracias Shiryu_Libra!
Revisando las rutas virtuales y las carpetas en las que tenía que subirme los archivos, me he dado cuenta de que si lo ponía así:
obj.Guardar(Server.MapPath("caratulas/"))
Me subía un jpg con el nombre correcto pero que no era la foto que yo quería sino on archivo "dañado". Revisando un post de rutas virtuales y xelupload he visto que alguien mencionó la versión de VBScript de la página que sube el archivo y ahí estaba el fallo, en cuanto he cambiado el código de <%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%> a <%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
ha empezado a funcionar perfectamente.
Ahora estoy intentando perfeccionarlo para subir más de una foto cada vez y sobre todo me interesaría que después de subir la primera foto me generase una nueva con el mismo nombre pero más pequeña (de 162x240 pasaría a 56x83 px) y me la guardase en la carpeta de miniaturas en vez de en la de caratulas.
Entiendo que sería una función que se ejecutaría jsuto después de guardar la primera foto en caratulas pero aún le estoy dando vueltas a como hacerlo.
Ahora lo tengo así pero lo único que consigo es guardar la misma foto en las 2 carpetas.
Código PHP:
obj.Guardar(Server.MapPath("caratulas/"))
obj.Guardar(Server.MapPath("miniaturas/"))