Cargar archivos con file_get_contents() usando el contexto de flujo HTTP
La carga de archivos a través de un formulario web se puede lograr sin problemas usando la extensión cURL. Sin embargo, también es posible realizar cargas de archivos usando la función file_get_contents() de PHP junto con el contexto de flujo HTTP.
Tipo de contenido multiparte
Para cargar un archivo usando file_get_contents(), es crucial definir un tipo de contenido "multipart/form-data". Esto especifica que la solicitud contiene varias partes, incluidos los datos del archivo y cualquier parámetro asociado. El delimitador utilizado para separar estas partes se conoce como límite.
Creación del cuerpo del contenido
El cuerpo del contenido debe seguir las especificaciones de HTTP y el encabezado Content-Type . Para cada archivo que se carga, incluya la siguiente información:
Creación del contenido del archivo
Utilizando file_get_contents(), obtenga el contenido del archivo que se va a cargar. Agréguelo al cuerpo del contenido.
Configuración de encabezados y contexto de solicitud
Defina el encabezado Content-Type y cree un contexto de flujo HTTP usando stream_context_create(). Establezca el método de solicitud en POST, agregue los encabezados y especifique el cuerpo del contenido.
Ejecutando la carga
Finalmente, ejecute la función file_get_contents() con la URL adecuada y el contexto configurado.
Nota
Los archivos binarios se pueden enviar directamente sin codificación. HTTP admite la transferencia de datos binarios.
Si sigue estos pasos, puede aprovechar file_get_contents() y el contexto de flujo HTTP para cargar archivos a un servidor web remoto.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3