Un usuario preguntó 👇
Hola,
Tengo archivos almacenados en mi cuenta de Google Drive (porque son demasiado pesados). Luego cambio la URL compartida a una URL de descarga directa.
Ex: https://drive.google.com/file/d/FILE_ID/edit?usp=sharing
A: https://drive.google.com/uc?export=download&id=FILE_ID
Una vez que envío el enlace en mi navegador, puedo descargar el archivo directamente. Agregué este enlace a mi producto y ahora el usuario puede descargar el archivo, pero el nombre del archivo no está incluido. Por ejemplo, mi archivo se llama «hello.zip», cuando el usuario va a su cuenta para descargar el archivo, obtiene un archivo «uc» cada vez. Traté de descargar este archivo porque el peso es el mismo, este archivo «uc» fue renombrado como «hello.zip» y funciona.
¿Cómo arreglar este problema?
Gracias
Lanzador de hilos
(@maxwilliam)
Hace 2 años, 4 meses
Creo que encontré algo. En el archivo: incluye / class-wc-download-handler.php Cambié la línea 433: encabezado (‘Asunto-Eliminación: archivo adjunto; nombre de archivo = «‘. $ Nombre de archivo. ‘»;’); En: encabezado (‘Eliminación de contenido: archivo adjunto; nombre de archivo = «blablabla.doc»;’);
Ahora, esto cambia el nombre del archivo cuando intento descargarlo. Entonces hay un problema al obtener el nombre de archivo de la URL…
Lanzador de hilos
(@maxwilliam)
Hace 2 años, 4 meses
Encontré una solución temporal. Archivo: incluye / class-wc-download-handler.php En la línea 195: $ nombre de archivo = actual (explosión (‘?’, $ Nombre de archivo));
Esa es la razón del problema porque con Google Drive el nombre del archivo no se transmite en la URL. Así que intenté recuperar este nombre de archivo usando curl pero fallé …
Por lo tanto, cuando crea su producto y envía un archivo para descargar, debe completar el nombre de archivo y la URL. Entonces uso el campo de nombre para nombrar mi archivo (el mismo nombre que mi archivo almacenado en mi Google Drive por extensión).
Luego hice cambios en la línea 194:
if (strstr ($ nombre de archivo, ‘?’)) {$ nombre de archivo = actual (explosión (‘?’, $ nombre de archivo)); }
En:
if (strstr ($ nombre de archivo, ‘?’)) {$ nombre de archivo = actual (explosión (‘?’, $ nombre de archivo));
$ producto = wc_get_product ($ product_id); $ drive_filename = $ producto-> get_downloads (); foreach ($ drive_filename as $ key => $ each_download) {$ filename = $ each_download[“name”]; }}
Funciona por minuto 🙂
¿Solucionó tu problema??
0 / 0