Soy un principiante aquí, así que perdóname por esta pregunta que estoy usando return File::put($path , $data);
para crear un archivo en una carpeta pública en Laravel. Usé este fragmento de código del controlador, necesito saber el valor de $path
cómo debería ser.
81
Respuestas:
Utilizar
public_path()
Para referencia:
// Path to the project's root folder echo base_path(); // Path to the 'app' folder echo app_path(); // Path to the 'public' folder echo public_path(); // Path to the 'storage' folder echo storage_path(); // Path to the 'storage/app' folder echo storage_path('app');
fuente
public_path()
realidad es bastante inútil, solo asume que todos sus archivos públicos están en un directorio llamado "público", incluso si no lo están. Por ejemplo, siempre tengo que cambiar el directorio "público" predeterminado a "public_html" (en línea con mi servidor). Laravel no reconoce esto. Así que no confíe en esto para hacer una determinación inteligente de cuál es realmente su directorio público. Solo estoy usando a$_SERVER['DOCUMENT_ROOT'];
menos que alguien pueda sugerir por qué no debería hacerlo.Puede usar base_path () para obtener la base de su aplicación, y luego simplemente agregar su carpeta pública a eso:
$path = base_path().'/public'; return File::put($path , $data)
Nota: Tenga mucho cuidado al permitir que las personas carguen archivos en su raíz de public_html. Si suben su propio archivo index.php, se harán cargo de su sitio.
fuente
Sé que es un poco tarde, pero si alguien más se encuentra con este aspecto, ahora puede usar public_path (); en Laravel 4, se ha agregado al archivo helper.php en la carpeta de soporte, ver aquí .
fuente
La mejor manera de recuperar la ruta de su carpeta pública desde su configuración de Laravel es la función:
$myPublicFolder = public_path(); $savePath = $mypublicPath."enter_path_to_save"; $path = $savePath."filename.ext"; return File::put($path , $data);
No es necesario tener todas las variables, pero esto es solo para fines demostrativos.
Espero que esto ayude, GRnGC
fuente