usuario3838153
Estoy usando Laravel 4.2 con la biblioteca Intervention, y no estoy seguro de por qué tengo este problema cuando todo lo demás parece estar bien. aquí está el código:
Route::post('test',function()
{
// check if files was sent
if(Input::hasFile('file'))
{
$image = Input::file('file');
$filename = date('Y-m-d-H:i:s').'-'.$image->getClientOriginalName();
$path = public_path('images/cars/'.$filename);
Image::make($image->getRealPath())->resize(468,249)->save($path);
} else {
return Response::json(array('test'=>false));
}
});
El error que estoy recibiendo es:
Intervención \ Imagen \ Excepción \ NotWritableException No se pueden escribir datos de imagen en la ruta (C:\xampp\htdocs\jacars_project\public/images/cars/2014-08-26-03:41:39-icon_2034.png).
Gracias de antemano por ayudarme a resolver el problema.
puede verificar la existencia del directorio, si no existe dicho directorio, créelo:
if (!file_exists($save_path)) {
mkdir($save_path, 666, true);
}
-
No pude entender el problema al principio, pero resolvió mi problema de carga de imágenes a la ruta de la imagen pública. ¡Gracias!
– Mi proyecto de codificación
9 sep 2019 a las 8:00
-
¿No debería ser el permiso 775 en lugar de 666?
– Yousef Altaf
22 de septiembre de 2021 a las 13:19
-
Pensé que sí, se suponía que era 775
– ndotie
13 de noviembre de 2022 a las 14:10
Solo cambia esto:
$path = public_path('images/cars/'.$filename);
A esto:
$path="images/cars/" . $filename;
Además, asegúrese de que el objetivo path/location
se puede escribir, tiene permiso de escritura.
-
¿Cómo me aseguro de que la ruta/ubicación sea escribible y tenga permiso de escritura?
– usuario3838153
26 de agosto de 2014 a las 4:39
-
Qué
OS
su proyecto se está ejecutando en?– El alfa
26 de agosto de 2014 a las 4:40
-
Revisa esta respuesta.
– El alfa
26 de agosto de 2014 a las 4:55
-
windows 8 estoy corriendo
– usuario3838153
26 de agosto de 2014 a las 11:24
-
para asegurarse de que se puede escribir en la carpeta, use el siguiente comando:
sudo chmod 775 your_directory
para linux– Alika Mateo
11 de septiembre de 2019 a las 0:15
Si no ha creado la carpeta de su ruta, obtendrá ese error. Necesitas crearlo primero.
-
resolvió mi error, tenía un nombre de archivo incorrecto
–Mohsin Khan
6 sep 2022 a las 6:42
Al crear primero el directorio donde colocaré mi archivo de imagen, se resuelve el problema por mí.
Ej: crear el public/images/cars/
directorios primero. Entonces ahora puede guardar las imágenes allí.
PD: Pero si desea crear carpetas dinámicamente, no estoy seguro de cómo hacerlo.
GastonChiquillo
Después de tantas horas, encontré la solución para Centos 8 (pero también funciona para otros). Necesitamos asignar los permisos necesarios a la carpeta que guardará las imágenes para cargar. Y usar el comando “chmod” no es suficiente, debe usar
httpd_sys_content_t
y
httpd_sys_rw_content_t
Ej: Desde la línea de comando ingresamos a la carpeta de nuestro proyecto Laravel, ingresamos al “/público” carpeta y ejecute los siguientes comandos para dar permisos a la “/imágenes” carpeta:
chown –R apache: images
chmod –R 755 images
systemctl restart httpd
chcon -R -t httpd_sys_content_t images
chcon -R -t httpd_sys_rw_content_t images
systemctl restart httpd
Nota: (“chown -R apache: imágenes” reemplaza en otras versiones de Linux a su equivalente “chown -R www-data: imágenes”).
-
Bienvenido a stack overflow, este sitio solo acepta respuestas en inglés.
– Makdous
8 de julio de 2020 a las 18:42
Lawson
si está usando Ubuntu -> sudo chmod -R 777 público
-
Bienvenido a stack overflow, este sitio solo acepta respuestas en inglés.
– Makdous
8 de julio de 2020 a las 18:42
En mi caso fue por no tener permiso sobre la carpeta, chmod con 755 hizo el trabajo.
chmod -R 755
-
elabore un poco la respuesta que muestra cómo lograr esto. Posiblemente muestre cómo cambiar el código del OP para implementar el cambio que sugiere.
– Max Muster
25 de febrero de 2021 a las 14:27
Buen código que has escrito allí. Este error parece ser un problema con un directorio. El código no puede encontrar ese directorio. Puede resolver eso usando una ruta relativa para apuntar específicamente a ese directorio, por ejemplo, en mi caso, usé la ruta public/baz.jpeg y obtuve el mismo error que el suyo. Cambié la ruta a ../public/baz.jpeg y ahora la imagen se almacena allí como se esperaba.
– Moisés K
20 de septiembre de 2021 a las 6:26