Como guardo un archivo en la carpeta public_html

  • Autor Autor pa3lo022
  • Fecha de inicio Fecha de inicio
P

pa3lo022

Gamma
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Hola a todos, necesito un poco de ayuda por favor, me estoy volviendo medio loco. Estoy trabajando con laravel y estoy tratando de generar un sitemap.xml automatico, pero cuando lo genero no me lo guarda en la carpeta publica, solo logre que me lo guarde en el raiz del cpanel y no puedo hacer que me lo genere dentro del public_html, adjunto una imagen de donde me lo genera.
El codigo que estoy utilizando es

Insertar CODE, HTML o PHP:
$sitemap->store('xml', '../../sitemap');

Al poner ../../ lo lleva a la raiz de cpanel, pero como hago para decirle que desde ahi lo guarde en public_html

Muchas gracias

saludos
 

Adjuntos

  • 2021-05-27_20h43_52.webp
    2021-05-27_20h43_52.webp
    10,1 KB · Visitas: 14
depende tu SO... pero seria /home/USERNAME/public_html/
 
¿Dónde tienes alojado el proyecto de Laravel? ¿Directamente en public_html?
 
¿Dónde tienes alojado el proyecto de Laravel? ¿Directamente en public_html?
Buenos dias,

El proyecto de laravel se encuentra en una carpeta con el nombre avisos y la parte de publica dentro de public_html.
depende tu SO... pero seria /home/USERNAME/public_html/
cuando hago eso me busca el path "/home/USERNAME/public_html/" dentro de la carpeta avisos (donde tengo el proyecto de laravel)
 
¿Pero dónde está "avisos" en ese diagrama?

Si avisos está al mismo nivel que public_html lo que tienes que poner es: '../public_html/sitemap'
 
¿Pero dónde está "avisos" en ese diagrama?

Si avisos está al mismo nivel que public_html lo que tienes que poner es: '../public_html/sitemap'
Si esta al mismo nivel, la cosa es que el store "$sitemap->store('xml', '../../sitemap');" el que crea el sitemap y lo guarda, lo trata de guardar en avisos/public/sitemap.xml entonces tengo que poner "../../" para que lo lleve al raiz, me explico?
 
Hola, que librería o código estás usando?
 
Si esta al mismo nivel, la cosa es que el store "$sitemap->store('xml', '../../sitemap');" el que crea el sitemap y lo guarda, lo trata de guardar en avisos/public/sitemap.xml entonces tengo que poner "../../" para que lo lleve al raiz, me explico?
Entonces entiendo que tendrías que hacer: "../../public_html/sitemap"
 
Entonces entiendo que tendrías que hacer: "../../public_html/sitemap"
Es lo que hago pero en ese caso lo quiere crear en avisos/public_html/sitemap, les juro que me estoy volviendo loco 🙁
 
Entonces entiendo que tendrías que hacer: "../../public_html/sitemap"

Ok, revisando la librería indica que si deseas que se guarde en la carpeta pública es de esta manera:

PHP:
// generate your sitemap (format, filename)
$sitemap->store('xml', 'mysitemap');
// this will generate file mysitemap.xml to your public folder


Entonces, se guardará en public_html/public. Que es la carpeta en Laravel donde podrás tener acceso a tu archivo desde dominio.com/sitemap.xml
 
Ok, revisando la librería indica que si deseas que se guarde en la carpeta pública es de esta manera:

PHP:
// generate your sitemap (format, filename)
$sitemap->store('xml', 'mysitemap');
// this will generate file mysitemap.xml to your public folder


Entonces, se guardará en public_html/public. Que es la carpeta en Laravel donde podrás tener acceso a tu archivo desde dominio.com/sitemap.xml
Claro, en mi local lo guarda bien, lo guarda en la carpeta publica, el problema es que cuando lo subo al cpanel es cuando tengo el problema que lo guarda en la carpeta "avisos"
 
"El proyecto de laravel se encuentra en una carpeta con el nombre avisos y la parte de publica dentro de public_html."

Porque tienes eso de esta manera?
 
"El proyecto de laravel se encuentra en una carpeta con el nombre avisos y la parte de publica dentro de public_html."

Porque tienes eso de esta manera?
Siempre he subido los proyectos asi 😵
 
Siempre he subido los proyectos asi 😵
Bueno, en teoría no hace falta hacer eso. Ya que puedes manejar todo en la misma carpeta. Para poder ayudarte, por favor confirmame si tienes una carpeta "avisos" donde tiene el proyecto laravel y en la misma línea public_html donde tienes la parte pública.

- shared_user
--- avisos -> proyecto laravel
--- public_html -> parte pública
 
Bueno, en teoría no hace falta hacer eso. Ya que puedes manejar todo en la misma carpeta. Para poder ayudarte, por favor confirmame si tienes una carpeta "avisos" donde tiene el proyecto laravel y en la misma línea public_html donde tienes la parte pública.

- shared_user
--- avisos -> proyecto laravel
--- public_html -> parte pública
Si si asi mismo la tengo
 
Si si asi mismo la tengo
Intenta esto:

PHP:
$sitemap->store('xml', 'sitemap', base_path('public_html'));
PHP:
$sitemap->store('xml', 'sitemap', base_path('../public_html'));
Y me cuentas a ver.
 
Última edición:
Intenta esto:

PHP:
$sitemap->store('xml', 'sitemap', base_path('public_html'));
PHP:
$sitemap->store('xml', 'sitemap', base_path('../public_html'));
Y me cuentas a ver.
perdon tuve que salir y no pude seguir probando, quiero decirte que si te tuviera aca conmigo, te daria un abrazoooooo interminable 😛
$sitemap->store('xml', 'sitemap', base_path('../public_html')); este funciono perfecto

muchas gracias Joao y gracias al resto
 
perdon tuve que salir y no pude seguir probando, quiero decirte que si te tuviera aca conmigo, te daria un abrazoooooo interminable 😛
$sitemap->store('xml', 'sitemap', base_path('../public_html')); este funciono perfecto

muchas gracias Joao y gracias al resto

De nada. Cualquier duda públicalo y te echamos una mano.
 
yo veo un problema de seguridad ahí
lo que haría es que el xml lo grabe en una carpeta fuera del public_html y en el public_html un script pequeño que lea ese xml y lo envíe al browser
 
Atrás
Arriba